• ベストアンサー

プログラミング(自由課題)

プログラミングの勉強会で以下のような課題が出されたのですがなかなかいいアイディアが思い浮かびません。初心者にもあまり難しくないものは何かないでしょうか?あったら教えてください。 内容は自由であるが、必ず 『繰り返し』(for文またはwhile文) 『条件分岐』(if文またはswitch文) 『配列』 『関数』(main関数以外の自作の関数) を含むこと。 初めてプログラムを見た人にもわかる説明ができるようにしておくこと。

質問者が選んだベストアンサー

  • ベストアンサー
noname#144013
noname#144013
回答No.6

bluesky445さん、こんにちは。 入力された月(xxxx年xx月)のひと月分のカレンダーを画面に表示するプログラムは如何でしょう? ※例えば下記のような形式で表示 <カレンダー表示例>       2008年 9月  日 月 火  水 木 金 土      1  2  3  4  5  6   7  8  9  10 11 12 13  14 15 16 17 18 19 20  21 22 23 24 25 26 27  28 29 30 Windowsの場合での話になりますが、これならコンソールプログラムでも作成可能ですし比較的 簡単に作成できると思います。 コンソールにprintf関数などで出力するようにすれば、実行時にリダイレクトしてテキストファイル として書き出し、後で他の文書などに貼り付けて利用することも可能だと思います。 また、これを雛型として1年分のカレンダーも作成可能ですし、何年何月何日の曜日を知りたい 場合など色々なことに応用できると思います。 ※プログラミングの勉強としても結構面白いと思います。 【必須項目】の例としては、  1)『繰り返し』(for文またはwhile文)    一月分なので1日から末日までのループに使用  2)『条件分岐』(if文またはswitch文)    閏年の判定、表示時の改行タイミングの判定などに使用  3)『配列』    曜日名を配列として表示の際に使用  4)『関数』(main関数以外の自作の関数)    曜日判定(xxxx年xx月の1日の曜日を得る)などを関数とする などが考えられます。 ※これは一例ですのであくまで参考程度として、ご自身で色々と面白いものを考えてみて下さい。 想像を巡らして色々とアイデアを練っているのもプログラミングとして結構楽しいと思いますよ。(^_^)

その他の回答 (5)

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.5

プログラムの基礎の課題としては、電話帳(アドレス帳)プログラムが結構適していると思います。 入力、出力、修正、検索、配列など、使いやすさを追求していくと、いろいろなことを覚えますよ。

  • cell2jp
  • ベストアンサー率0% (0/2)
回答No.4

こういう質問は http://l.huu.cc/board/ こちらで聞くと手取り足取り教えてくれそうです。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

条件を満たす最小のプログラムに挑戦するというのはどうでしょう?

  • ebinamori
  • ベストアンサー率21% (96/439)
回答No.2

「3と3の倍数のときだけ画面に表示する」でいいんじゃない? この時期でどういう状況かわからないけど、プログラムに自信がないなら それか適当に「ソート」か「探索」のプログラムを書いて 素人の人にも説明できるようになればいいんじゃない? ありきたりでもかなり勉強になると思うよ。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>なかなかいいアイディアが思い浮かびません。 何でもいいから思い付いたアイデアを補足に書くがいい。

関連するQ&A

  • c言語プログラミングでの質問?です。

    学校でc言語プログラミングを使って簡単なゲームを作りなさい。 という課題が出ました。 下記の条件に沿って作れとのことです。 なかなかいいアイデアが浮かばないんですが、なにかちょうどいいものないですかね? ・scanf文を使うこと。。 ・if文を使うこと。 ・for文(while文)を使うこと。 ・rand関数を使うこと。 ・自分で定義した関数を使うこと。 ・配列または文字列を使うこと。

  • 大学の課題

    はじめまして。自分は今理工系の大学に通う二年です。C言語は初心者のレベルだとおもいます。配列やfor文、関数の引き出し程度のことが出来る感じです。そこで質問なんですが、大学で「各自で自由に問題を設定し、それに対するプログラミングを作成せよ」という課題が出されました。しかしながら、いいアイデアがまったく浮かびません。なにかイイ問題ありませんか? 身勝手な質問ですいません。お願いします

  • 質問:C++のプログラミング

    次のような課題が出たのですがわかりません。 教えてください。 <課題> Main関数で3つの数をscanfで入力し、関数max(これを作る)に行ってその3つの数の最大値を求めて次のように出力するようにせよ。   data? (任意の数字3つを入力)   maximum=(一番大きな数) そもそもfor文を使えばいいのかdo while文を使えばいいのかというところから分かっていません。 どなたかよろしくおねがいします。

  • C言語について

    初心者で学校の課題をやっているときに疑問がでてきてしまったので、基本的な質問なのですが、教えて頂けたらうれしいです。 1.関数にすることによってどんな利点があるのでしょうか。 2.分岐のif文とswitch文は同じ処理をしていると考えていいのでしょうか。 3.switch文の中にfor文や、for文の中にswitch文など、条件式の中に条件式をいれることはできるのでしょうか?? 一度に3つも質問してしまってすみません。 ぜひ回答をおねがいします。

  • swith文について

    こんにちは。 switch文を用いて分岐を行っています。 以下のプログラムは、whileの無限ループ内にswitch文の分岐を行っています。while内にrecvfrom関数(ソケット通信用関数)を用いています。recv_Buf配列内をヌル文字まで走査し、文字列の長さによって分岐をしています。 while内のrecvfromによって、他端末から文字列を逐次受信しているのですが、この場合、switch文ではなくif文による分岐を行うべきなのでしょうか? また、breakを行うことで、whileの無限ループまで抜けることになるのでしょうか? switchの場合、breakを用いないと、実行したくないところまで実行してしまう可能性があるので、breakは必要だと思い以下のプログラムにしました。 よろしくお願いいたします。 [プログラム] while(1){   recvfrom(s2, recv_Buf, (int)sizeof(recv_Buf) - 1, 0, (SOCKADDR *)&from, &fromlen);   while(recv_Buf[len]!='\0')   len++;   switch(len){    case 3:     if(memcmp(recv_Buf,"END",3) == 0){      //処理     }     break;    case 5:     if(memcmp(recv_Buf,"START",5) == 0){      //処理     }     break;     case 12:     case 13:     case 14:     case 15:      if(memcmp(recv_Buf,"SEND_PACKET",11) == 0){       //処理      }      break;    } }

  • プログラミングの課題です、助けてください。

    C言語のプログラミングの課題で、「以下のプログラムで、引数としてスコア(100等の数字)を与えると、そのスコア以上のエントリだけを検索して、出力するように変更する」という問題なのですが、プログラミングが苦手な私にはさっぱりわからず、大変困っています。設問のプログラミングがわかる方がいらっしゃいましたら、教えていただけると大変助かります。よろしくお願いします。 #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX_LEN 256 int main(int argc, char *argv[]) { FILE *rfp; FILE *wfp; int i, score; double evalue; char id[MAX_LEN], name[MAX_LEN], fname[MAX_LEN]; char keyword[] = "glu"; for(i = 0; i < 100; i++){ sprintf(fname,"files/%d.txt",i); if((rfp = fopen(fname, "r")) == NULL) { printf("入力ファイルが存在しません。\n"); return (EXIT_FAILURE); } while (fscanf(rfp,"%s\t%s\t%d\t%f", id, name, &score, &evalue) != EOF){ if (strstr(name,keyword) != NULL){ printf("%s\n",id); } } fclose(rfp); } return (EXIT_SUCCESS); }

  • プログラムの課題で分からない問題があるので、ヒントを教えていただきたい

    プログラムの課題で分からない問題があるので、ヒントを教えていただきたいのです。 ちなみにfor文、if文、配列などを応用して(勿論ぜんぶ使わなくても良いです)プログラムをつくるものなのですが、配列をうまく理解してないので、どういう風に配列に代入して出力するかアドバイスお願いします。 ・キーボードから入力した2つの文字列(8文字以内)を比較して、同じときには○、異なるときは×と表示する int main(void) { char str[8]; int i,n,na; for (i=0;str1[i]= =str2[i];i++){ if (str1[i]= ='\0'){ n=1; }break; } というトコまでは何とか分かるのですが…

  • プログラミングの課題で困っています。

    大至急です。プログラミングの課題です。 プログラミングはvisual C++ 2008を使ってます。 丸棒(円柱)の慣性モーメントは   I=M{(d^2/16)+(l^2/12)}   で与えられる。ここでMは棒の質量、dは直径、lは長さをあらわす。 また、長さの等しい二本の糸でつるした軽い台の上に棒を置き、鉛直軸回りに回転運動させたときの振動周期は    T=2π√(Ih/Mgab) で与えられる。なおgは重力加速度であり9.81[m/s^2]とする。 h=0.5[m] a=0.1[m] b=0.2[m]として実験装置を構成した時、d、l、M すなわち棒の寸法と質量を入力すると、 回転振動の周期を計算し表示するプログラムを作成せよ。  ただし慣性モーメントの計算は関数hunc_Iとしてmain関数とは別に定義せよ。 という課題が出て、わからなくて困ってます。このプログラムの答えを教えてください。 よろしくお願いします。

  • C言語プログラミングについて…Arduinoを用い

    C言語プログラミングについて…Arduinoを用いて、以下の文でスイッチ「RedSwitch(赤スイッチ)」が押された回数だけ後で光るというプログラミングを作りました。次にその使用した「switch case」文を「if」文、もしくは「if else」に変換して同じプログラミングを作りなさいという課題が出て、いろいろと変えてみたのですが、シリアルモニタを見るとif文を用いた時に「RedSwitch」が押された「回数」ではなく連続的に?押した「秒数」をカウントして困ってます。どうやったら改善できるのでしょうかか?ご教授お願いしたします。 void sw_check(void) { switch(SW_RedSwitch) { case 0: if ( digitalRead(2)==SW_ON ) { SW_RedSwitch=1; } break; case 1: if ( digitalRead(2)==SW_OFF ) { SW_RedSwitch=2; } break; } } void blink(void) { digitalWrite(13,LED_ON); delay(500); digitalWrite(13,LED_OFF); delay(500); } void loop() { unsigned char SW_CNT=0,SW_TIME=0,i; while( (SW_TIME<100) || (SW_CNT==0) ) { sw_check(); if ( SW_RedSwitch==2 ) { SW_RedSwitch=0; SW_CNT++; SW_TIME=0; } SW_TIME++; delay(20); } for (i=1 ; i<=SW_CNT ; i++) { blink(); } }

  • Cプログラミングでハングマンゲームを作る

    Cプログラミングを半年ほど学んだ大学生です。 Cプログラミングでハングマンゲーム(出題者と解答者になり、出題者が考えた単語に使用されている文字を、解答者がひとつずつ答えて当て、正解の単語に使われていない文字を答える度に、絞首刑の絵が完成に近づき、絞首刑の絵が完成するまでに正解の単語を当てなければならないゲーム。正解すれば絞首台から開放される。)を作りたいのですがどのようなプログラミングスキルが必要でしょうか? if、else、while、for文、配列、ポインタ、文字列の扱い(putcher(),getcher()関数)、だけでできますか? またこのゲームの作り方に関して詳しく説明のある本やサイトはありますか?できれば本の方がいいです。 よろしくお願いします。

専門家に質問してみよう