高度プログラミング演習 (08).

Slides:



Advertisements
Similar presentations
C 言語講座 第 7 回 ポインター. メモリとアドレス(ポインターの前 に) コンピュータのメモリには 1 バイトずつ 0 番地、 1 番地、 2 番地・・・というように 住所が割り当てられている この住所をアドレスという。 メモリはデータをしまうもので それを引き出すためには メモリに番号(アドレス)を振っておけばよいな.
Advertisements

C言語基礎 関数・ポインタ.
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
課題解説: 関数の引数にポインタを使って2数を入れ替える
解答 1 複素数を構造体として定義し、二つの複素数の積(結果は複素数)を返す 関数 を定義せよ。
基礎プログラミングおよび演習 第9回
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
2009/10/9 良いアルゴリズムとは 第2講: 平成21年10月9日 (金) 4限 E252教室 コンピュータアルゴリズム.
プログラミング入門2 第6回 関数(2) 芝浦工業大学情報工学科 青木 義満
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
C言語講座 第4回 ポインタ.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第10章 char 文字列; 文字列を入力させるよ!.
C言語講座 第3回 ポインタ、配列.
プログラミング論 関数ポインタ と 応用(qsort)
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング2 関数
プログラミング論 ファイル入出力
関数とポインタ 値呼び出しと参照呼び出し swapのいろいろ 関数引数 数値積分
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
Cプログラミング演習.
第10回関数 Ⅱ (ローカル変数とスコープ).
Cプログラミング演習 第7回 メモリ内でのデータの配置.
第10章 これはかなり大変な事項!! ~ポインタ~
高度プログラミング演習 (03).
アルゴリズムとデータ構造 補足資料5-2 「サンプルプログラムsetop.c」
知能情報工学演習I 第12回(後半第6回) 課題の回答
ネットワークプログラミング 第3回「C言語の基礎~コマンドライン引数・構造体・ポインタ」
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
プログラミング入門2 第11回 情報工学科 篠埜 功.
第7回 プログラミングⅡ 第7回
高度プログラミング演習 (02).
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
プログラミング論 ファイル入出力
高度プログラミング演習 (05).
関数への道.
プログラミング基礎B 文字列の扱い.
演習0 func0, func1, func2を作成せよ. main()関数の中で,func0()を呼び出しを実行せよ.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
C言語 はじめに 2016年 吉田研究室.
プログラミング序論演習.
プログラミング序論演習.
補講:アルゴリズムと漸近的評価.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
高度プログラミング演習 (09).
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 11.5 関数引数
第5回 プログラミングⅡ 第5回
高度プログラミング演習 (11).
高度プログラミング演習 (11).
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
知能情報工学演習I 第12回( C言語第6回) 課題の回答
高度プログラミング演習 (07).
プログラミング演習I 2003年6月11日(第9回) 木村巌.
第2章 数値の入力と変数 scanfと変数をやります.
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
プログラミング演習I 補講用課題
プログラミング 3 ポインタ(1).
高度プログラミング演習 (10).
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
Presentation transcript:

高度プログラミング演習 (08)

演習問題 与えられた2数のべき乗を計算する関数を再帰関数を用いて作成せよ。 ユークリッドの互除法を用いて最大公約数を求める関数を作成せよ。

与えられた2数のべき乗を計算する #include <stdio.h> int mypow(int a, int b) { if(b==0) return 1; else return a * mypow(a,b-1); } void main() int a,b; scanf("%d %d",&a,&b); printf("%d ^ %d = %d\n",a,b,mypow(a,b));

ユークリッドの互除法 #include <stdio.h> int gojoho(int n, int m) { int amari,b,s; if(n>m){ b = n; s = m; }else { b = m; s = n; } amari = b % s; if(amari!=0) gojoho(amari,s); else return s; void main() { int n,m; scanf("%d %d",&n,&m); printf("L.C.M = %d\n", gojoho(n,m)); }

ポインタ メモリ CPU コンピュータの構造 メモリ: 番地 (アドレス): 値 000000: 123 000001: 2345   番地 (アドレス): 値   000000:    123   000001:   2345 CPU Pentium4 3GHz void main() { int a,b; a=123; b=2345; *(&a)=123; *(&b)=2345; } 000000: 123 000001:2345 メモリ Main Memory 512MB

ポインタ型 int *a; a #include <stdio.h> void main() b { int *a,*b; int c=38; int matrix[100]; int i; a=&c; printf(“%d”,*a); b=&matrix[50]; b[0]=39; // matrix[50] *(b+1)=40; // matrix[51] } b matrix[50]のアドレス c 38 matrix[0] matrix[1] matrix[2] matrix[3] matrix[50] matrix[51]

ポインタ型を使った関数呼び出し #include <stdio.h> void foo(int *a,int *b) { *a = *a + *b; } void main() int a=10,b=20; foo(&a,&b); printf(“%d\n”,a);

例題問題 2つの引数をとり、それぞれの変数の内容を入れ替える関数を作成せよ。 myswap(int *a, int *b) int a=3,b=8; myswap(&a,&b); a の中身は 8 b の中身は 3

演習問題 小文字を大文字に変える関数を作成せよ。 大文字を小文字に変える関数を作成せよ。 myaA(char *ch) myZz(char *ch)

演習問題 格子の中で、点から点へは 任意の(x0,y0)から任意の(x1,y1)までの経路が何通りあるか計算するプログラムを作成せよ。 上または右にしか進めないとする。 任意の(x0,y0)から任意の(x1,y1)までの経路が何通りあるか計算するプログラムを作成せよ。 (x1,y1) (x0,y0)