第9回目 [6月19日、H.15(‘03)] 配列(1) 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)配列 4)課題 PE03-09.ppt 前回の課題 教科書の List 4-17、4-18、4-19を良 く復習してから、次の各演習を順に処理 するプログラムを字下げに注意して作れ。 ・演習4-16、演習4-17(80頁)、 ・演習4-18(81頁) 提出はいつもと同様、リスト印刷とファイル転送 ファイル名は en8-****.c ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 024987 ならば xxx-2987.c 縦長・横長の四角形の表示 /* hen1, hen2 に値を入力する*/ if( hen1 <> hen2 ) { tate=hen1; yoko=hen2; } else { tate=hen2; yoko=hen1; } for ( i=1; i<=tate; i++) { for ( j=1; j<=yoko; j++)*** putchar('*'); *** putchar('\n'); ***** *** } ***** *** ***** *** 三角形・逆三角形の表示 /* ln に段数を入力する*/ i=1; i<=ln; i>=ln; i++ ) { i>=1; i-for ( i=ln; for ( j=1; j<=ln-i; j++) putchar(' '); for ( j=1; j<=i; j++) putchar('*'); putchar('\n'); }* **** * **** ** *** **** *** ** * ** *** **** *** ** * ピラミッドの表示 /* dan に段の値を入力する*/ for ( i=1; i<=dan; i++) { for ( j=1; j<=dan-i; j++) putchar(' '); for ( j=1; j<=2*i-1; j++) putchar('*'); putchar('\n'); * } *** ***** ******* 課題の提出について ・*がいっぱい出力される。 無限に出力される → 無限ループになっている。 for(初期設定式;継続条件式;再設定式) で、 継続条件式の書き方がおかしい 不等号の向きが逆、式の間違え ・入力した二つの値の大小関係を調べていない ・縦長、横長が逆になっている → 横長にする ・三角形の上下が逆 → 画面上側を直角にする ・ピラミッドが右(左)側半分しか出力されない ・セミコロン(;)、コンマ(,)、ダブルクォーテイション (")、などの記号が抜けてコンパイルエラーとなる 前回の宿題 ファイル名は hw8-****.c ◎前回の宿題の発展問題 整数 n を順に変えて、約数の和が n のちょ うど2倍となるような整数を4つ見つけ出せ。 条件を満足する整数は、 6 28 ???? ???? 6の約数は 1 2 3 6 であるから、 1+2+3+6 = 12 → 2x6 28の約数は 1 2 4 7 14 28 であり、 1+2+4+7+14+28 = 56 → 2x28 • 締め切り: 6月17日(火) 午後5時 • リストの提出は、オープン利用室のレポート入れ • aucopy でのファイル転送フォルダーは、 [森下伊三男]-[プログラミング演習] int n, m, sum; 初期値の代入を /* 4個の完全数を求める忘れない! */ for ( n=1; n<=10000; n++) { 約数の合計 sum = 0; を計算する for ( m=1; m<=n; m++) if ( n % m == 0 ) sum += m; 約数の合計が if ( 2*n == sum ) n の2倍 printf(" %d ",n); かどうかを チェックする } 6 28 496 8128 int n=1, m, cnt=0, sum; do { /* 別解(forを用いない) */ sum = 0; for ( m=1; m<=n; m++) if ( n%m == 0 ) sum += m; if ( 2*n == sum ) { printf(" %d ",n); cnt++; } n++; 宿題の提出について ・課題の文章が悪かった → 反省します。 ・繰り返す範囲の間違え → インデンテーション → 複合文 { } を適切に使う ・宿題の提出者数が少ない。 ・提出されたプログラムの完成度は高かった。 ・うまくプログラムを作るには、 → 全体の流れを、まず、言葉で紙に書いてみる → それぞれの部分をプログラム言語に置き換える → 繰り返し範囲、選択構造などを確認する 今日の課題 教科書の List 5-1~5-6 を良く復習し てから、次の各演習を順に処理するプロ グラムを作成せよ。 ・演習5-1、演習5-2(91頁)、 ・演習5-4(93頁)、演習5-5(95頁) 提出はいつもと同様、リスト印刷とファイル転送 ファイル名は en9-****.c ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 024987 ならば xxx-2987.c 今日の宿題 [提出はいつもの通り] ◎ 教科書のList5-19を参考にして、1から n まで の間のすべての素数を求めよ。(最大10000ぐら い) 上限値を入力せよ:200 1)上限値(n)の値は初め 200以下の素数は、 に入力する 2 3 5 7 11 ・・・ 2)素数は1行に10個づつ 31 37 41 43 47 ・・・ ・・・ 出力する 179 181 191 193 197 ・・・ 3)素数の個数を出力する 素数の数は 46 個です。 4)乗除回数を出力する ファイル名:hw9-****.c 乗除の回数: 492 • 締め切り: 6月24日(火) 午後5時(厳守) 第9回終了 次回(第10回)の プログラミング入門、 プログラミング演習は 6月26日です。
© Copyright 2024 ExpyDoc