進捗したい日記

プログラミングを覚えたい人のメモや感想。10月後半まで活動休止

バイナリファイルの操作(C)

C

バイナリファイルを扱うとき fopen("a.bin", "rb+") のように、モードにbを記す #include <stdio.h> int main(void){ FILE *hoge; hoge = fopen("b.bin", "wb"); fclose(hoge); return 0; } bと+はどちらが先に来てもかまわない。 ファイルに値を直接書きこむ fwrite</stdio.h>…

テキストファイルの操作(C)

C

もうすぐC言語を授業でやる。 ということで、まだ使ったことがなかった、テキストファイルに直接書いたりする方法を勉強するぞ ファイルを開くときの形 ファイル型のポインタ変数 = fopen("テキストファイル名", "モード") モード ファイルを開いてどうする…

Ruby合宿に行ってきた

Ruby合宿に行ってきました。4泊5日、濃厚でとても良い経験をすることができました。淡々とプログラムを考えるだけのところではなく、とても楽しいところで、一度は行ってみるべきだと思います。

attr_reader, attr_writerの確認(Ruby)

なんとなく理解できるようになったとはいえ、「理解できました」というにはまだ遠い。 ということで、attr_writerはこうやって動くんだなーということを確認。 class Name attr_reader :user_name def initialize @user_name = "Tom" end end class Greet < …

case文(Ruby)

やっぱりcase文ってどの言語においてもなんとなく好きなんですよね。 Rubyのcase文って、JavaScriptだとかC言語だとかのswitch文とは違うな~と。 defaultじゃなくてelseだったり。 case文 case 比較したいオブジェクト when 値1 then 処理 when 値2 then 処…

取り除いたりする その2(Ruby)

○引数で指定した文字を文字列から削除する delete delete! >> moji = "chocolate" => "chocolate" >> moji.delete("c") => "hoolate" ○ 文字列中の部分文字列を削除 slice! >> moji => "cooperate" >> moji.slice!(1) # moji[1]を削除 => "o" >> moji => "co…

取り除いたりする(Ruby)

取り除くで!!という感じのものをまとめた ○末尾の改行文字(\n, \r)を取り除く chomp chomp! chomp!はレシーバ自身を変更する。 引数に文字列を指定すると、その文字列を改行文字とみなす 末尾に改行文字があればレシーバ自身、ない時はnilを戻り値とする >> …

1から与えられた数まで素数かどうか(C)

C

前回の続きができた。今度は1から与えられた数まで調べる #include <stdio.h> #include <math.h> int main(void){ int max;//最大値 int i, j; int sosu[100]; //とりあえず100まで。ここが0だったら素数 double sqr[100]; //それぞれの平方根 int num[100]; //1から最大値ま</math.h></stdio.h>…

与えられた数が素数かどうか(C)

C

sqrtを使って素数かどうかを判断できるものを作れると知ったので、 入力した数字が素数かどうか判断するものを書いてみた。 #include <stdio.h> #include <math.h> int main(void){ int num, i; int sqr; //平方根 int sosu = 0; //ここの値が変わらなかったら素数 scanf("%d"</math.h></stdio.h>…

math.h その1(C)

C

math.h、何が何だか忘れそう コンパイル GCCでコンパイルするためには gcc hoge.c -lm 平方根・累乗・累乗根 sqrt(x); //平方根 pow(x,n); //累乗 pow(x, 1/n); 累乗根 対数関数・指数関数 log(x) //対数関数 exp(x) //指数関数 //指数関数は値が大きくなる…

breakを使わないswitch(C)

C

西暦・月・日を入力して、 12月31日までの日数を答えるプログラムを作ってるときに、 breakを使わないswitch文でいけるんじゃね?と思って、 やってみた。構造としては、 case 月: の形で、1月だと2月、3月……と12月まで流れていく。 それぞれの月でその月に…

ROT13というものがあるらしい(Python)

ROT13とは、 "Rotate by 13 places" の略らしい。 英語を丁度13文字ずらしてくれる。import codecsをして、 codecs.encode('変換したい文字', 'rot-13')で 変換してくれる。スゴイ。 import codecs print(codecs.encode(input(), 'rot-13')) #print(codecs.d…

Unicodeを少し(Python)

ord(c)とは 1 文字の Unicode 文字を表す文字列に対し、その文字の Unicode コードポイントを表す整数を返します。 例えば、 ord('a') は整数 97 を返し、 ord('€') (ユーロ記号) は 8364 を返します。これは chr() の逆です。 (Python標準ライブラリの説明…

Staticしたい(C)

C

staticについて 書こうと思ったんですが最後まで書けなかった。 でもとりあえずの途中経過として公開はする。 使ってみた #include <stdio.h> void show(); int main(void){ int i; for(i=0; i<3; i++){ show(); } return 0; } void show(){ static int a; //指定しな</stdio.h>…

戦ってみたかった(C)

C

最初はポインタを使ってなにかしたいなーーと思った。 特に文字コードで何かやりたかった。 しかし気がついたら黒い画面の上で戦ってた。 構造体とかswitchとか色々と詰め込みたいものを詰め込んでいた。 途中で設定に飽きた。 色々とやりたかったことはある…

入力する文字を指定する(C)

C

今回はスキャン集合を確認。 この文字以外入力させたくない scanf("%[abcdefg]", moji) //abcdefgのみ入力できる 入力する範囲を選択 1. scanf("%[a-z]", moji) //aからz以外が入力されると終了 2. scanf("%[^\n]" moji) //改行以外の入力を受け付ける これ…

構造体を配列にする(C)

C

構造体は配列にもできる #include <stdio.h> #include <string.h> typedef struct{ int age; char animal[10]; }animals; int main(void){ int i; animals data[3];//配列として宣言 data[0].age = 3; strcpy(data[0].animal, "いぬ"); data[1].age = 4; strcpy(data[1].animal,</string.h></stdio.h>…

構造体でポインタ

C

構造体型のポインタ変数 書き方 (*変数名).要素名 変数名->要素名 変数名[0].要素名 実際に使ってみる #include <stdio.h> #include <string.h> typedef struct { char animal[64]; char name[64]; int old; int weight; } animals; int main(void){ animals data; animals *p_d</string.h></stdio.h>…

最大値と最小値を出す(C)

C

ポインタを使ってみるよ ポインタを使った式を、もっと短くかけたので、追記。 素敵なことを教えていただいたので追記 与えられた数の中から最も大きいものと小さいものを表示するようにする入力方式 [一つ目の値, 二つ目の値, 三つ目の値……, 最後の値,, 終…

配列のポインタ(C)

C

コメントで教えてくださりありがとうございます。 表し方の数を増やしました。 これらは同じ意味 data[i] *(data + i) *(i + data) //New!! i[data] //New!! i[data]で表せることにビックリした 配列を書き換えられる int arr[5] = {1,2,3,4,5}; printf("%d\…

ポインタを使えるようになりたい(C)

C

ポインタは難しい。 同じアドレスになる #include <stdio.h> int main(void){ int *p; //ポインタ変数を宣言 int i = 2; p = &i; //pにiのアドレスを入れる printf("%d\n", i); printf("%p\n", &i); //iのアドレスを表示 printf("%p\n", p);//pのアドレスを表示 retur</stdio.h>…

構造体(C)

C

構造体について。 構造体の作成 struct 構造体タグ名{ //データ } 普通関数よりも先に宣言する 構造体の型の変数を宣言 struct 構造体タグ名 構造体変数名; C++ではstructをつけなくても宣言できるらしい。 新しく名前をつける struct animals_tag { char an…

書式を変えてみる(Python)

前回に引き続きformatを使ってみる オプションを設定! {引数のインデックス:オプション} {:オプション} 位置を調節 '{:<10}'.format('左詰め') #'左詰め ' '{:>10}'.format('右詰め') #' 右詰め' '{:^10}'.format('真ん中') #' 真ん中 ' 特定の文字(※1文字)…

文章中に文字列や数を挿入(Python)

今回はformatを使ってみる こういう感じ name = 'ねこ' print('あなたは{}ですか?'.format(name)) #あなたはねこですか? 複数の引数を用いる print('今日は{0}か{1}か{2}が食べたい'.format('カレー','うどん','野菜炒め')) print('今日は{m1}か{m2}か{m3}…

関数を作る(Python)

今回は関数を作ることについて。理解していないことの多さを痛感。 関数の定義 def 関数名(): 処理 return def name(na): return na def hello(): print(name('ねこ') + "さん、こんにちは!!") #ねこさん、こんにちは!! printで'+'をつけることを忘れそうに…

リスト(Python)

こんばんは、内容の順番がバラバラだなと思っています。 今回はリストについてです。 これからは内容だけでなく言語もバラバラになる予感がしています。 お気づきかもしれませんが、日によって常体敬体すらバラバラです。 今日は敬体の日です。 リストの定義…

スライス(Python)

今回はスライスについて。 スライスを使うと、リストやタプルの要素、文字列の範囲を指定して、 必要な部分だけを取り出すことができる。 [start:stop] num = {1,2,3,4,5,6,7,8,9} print(num[2:5]) #num[2]からnum[4]まで #[3, 4, 5] また、 print(num[-1]) …

for文その2(Python)

その2です。 fileを行単位で表示する for file in open("memo.txt"): print(file) #ファイルの中身が表示される 各要素のキーを表示させたい dic = {"keya": 1, "keyb": 2, "keyc": 3} for k in dic: print(k) #keya #keyb #keyc keys()でもいける dic = {"k…

for文その1(Python)

今日は、Pythonでのfor文についてです。 ○基本の形 for 変数 in イテラブルオブジェクト: 処理 イテラブルオブジェクトには辞書やリストやタプルがありますが、 イテレーションの仕組みについては理解力が追い付かなかったので後々理解したい。 繰り返す回数…

空白で分けて配列に突っ込む

こんばんは 今回はPythonで「数字を空白で区切って入力し、入力した数字を全て足す」ことを覚えました。つまり、2 2 2と入力すると6が表示されるようにしたい。何も考えず普通にinputすると"2 2 2"の文字列で認識されて計算できない。 当たり前ですね。 x = …