Similar documents


Java講座

デジタル表現論・第6回

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - ruby_instruction.ppt

PowerPoint プレゼンテーション

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf


スライド 1

memo

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

メソッドのまとめ

JavaプログラミングⅠ

02: 変数と標準入出力

Microsoft Word - 3new.doc

オブジェクト指向プログラミング・同演習 5月21日演習課題

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

Prog1_6th

プログラミング基礎I(再)

ガイダンス

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

JavaプログラミングⅠ

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog09.ppt

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft Word - 商業-3

Microsoft PowerPoint - prog09.ppt

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

Prog1_10th

JavaプログラミングⅠ

JavaプログラミングⅠ

PowerPoint Presentation

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

TextSystemOverview

02: 変数と標準入出力

Microsoft PowerPoint - CproNt02.ppt [互換モード]

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

PowerPoint プレゼンテーション

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

プログラミング実習I

文字列操作と正規表現

プログラミング実習I

JavaプログラミングⅠ

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

第1回 プログラミング演習3 センサーアプリケーション

Microsoft Word - Cプログラミング演習(1)_2012

数値計算

JavaプログラミングⅠ

PowerPoint プレゼンテーション

Microsoft PowerPoint - chap10_OOP.ppt

講習No.9

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

Microsoft PowerPoint - 5Chap15.ppt

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - program.ppt [互換モード]

gengo1-2

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

講習No.12

第 1 回 C 言語講座 1. コンピュータって? だいたいは 演算装置 制御装置 記憶装置 入出力装置から構成されている 演算装置 CPU の一部で実際に計算を行う装置 制御装置 CPU の一部で演算装置や入出力装置 記憶装置の読み書きなどを制御する装置 記憶装置プログラムや情報 データを一時的

基礎計算機演習 実習課題No6

memo

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

Prog2_12th

Microsoft Word - Training10_プリプロセッサ.docx

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

Microsoft PowerPoint - 計算機言語 第7回.ppt

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Flo

基礎プログラミング2015

Microsoft PowerPoint - kougi7.ppt

PowerPoint プレゼンテーション

物質工学科 田中晋

Prog1_2nd

メソッドのまとめ

Prog1_10th

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

ようこそゲストさんトップ最新の日記ユーザー登録ログインヘルプ CX's VBScript Diary <Visual Studio は VBScript 用の最強エデ VBScript 基礎文法最速マスター 11:50 VBScript の文法一覧です 他の言語をある程度

Microsoft PowerPoint - handout07.ppt [互換モード]

Microsoft Word - no202.docx

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - prog08.ppt

Microsoft PowerPoint - lec10.ppt

模擬試験問題(第1章~第3章)

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

PowerPoint プレゼンテーション

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

PowerPoint プレゼンテーション

Microsoft PowerPoint - bp02.ppt

kiso2-09.key

Prog1_15th

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

講習No.10

2

Transcription:

1/5 ページ 日記検索ブログトップ記事一覧ログイン無料ブログ開設 fn7の日記 <[ 勉強 ][ プログラミング ][Objecti... [ 雑記 ][Apple]iPad は想像以上 > プロフィール 2010-02-03 Objective-C 最速基礎文法マスター Java 基礎文法最速マスター - 何かしらの言語による記述を解析する日記を参考に Objective-Cのものを書いてみた まだまだ歴が浅いので間違っている所があるかもしれません 基礎デバッガコンソールコンソール出力 Xcodeのデバッガ出力を行うにはNSLog 関数を使います printfと同様のフォーマット文字列を使いますが %@ はNSStringのインスタンスを表示する時に使用します NSLog(@"message: %@",messge); NSLog(@"object: %@",[object description]); コメントコメントです // 一行コメント /* 複数行コメント */ 勉強, プログラミング, Objective-C fn7 のブックマーク 最近のコメント fn7 web プログ ラマ修行 中 LL 脳な人でもこれぐらいは覚え ておいてくれるとうれしい gdb の つかいかた または猫でもわか る gdb 講座 - TokuLog 改め B 日 記 漢 ( オトコ ) のコンピュータ道 : MySQL 管理者最速マスター Python 基礎文法最速マスター - D++ のはまり日誌 はてな的プログラミング言語人 気ランキング - Life like a clown アスペクト比 ( 縦横比 ) を保った まま 画像を拡大縮小する 2009-12- 06 hicatchme@gmail.com 2009-08-07 K 2009-07-05 k 2009-07-05 k 2009-06-20 fn7 変数宣言変数の宣言です Cと同じです 変数の宣言時にはデータ型を指定します int n; データ型はCのデータ型が使えます int n; unsigned int n; char n; unsigned char n; long n; float n; double n; 真偽値はYES,NOが用意されています BOOL isok = YES; BOOL isbad = NO; Objective-Cのオブジェクトの宣言はポインタの宣言です 最近言及したキーワード 2010-02-02 Alpha Apple Class C 言語 GC Google Objective-C [ 勉 強 ] accept chrome friends gcc ipad move nil object プログラミング携帯 百景初期化 カレンダー << 2010/02 >> 日 月 火 水 木 金 土 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 NSString *string; NSArray * array; NSDictionary* dictinary; オブジェクトの生成生成とメモリメモリ解放 オブジェクト生成には alloc+init 系と autorelease 済みの 2 通りがあります GC なしの場合メモリ管理は参照カウント方式となるので 使用には注意が必要です 参照カウントをインクリメントするには retain, デクリメントするにはreleaseを使います alloc+init 系初期化時にalloc+init 系メソッドを使った場合には参照カウントが1の状態なので 使用が終わればrelease して解放する必要があります NSArray *array = [[NSArray alloc] initwithobjects:@"a",@"b",@"c",nil]; [array release]; // 解放 alloc+init 系メソッドを使って生成したオブジェクトも autorelease に任せることができます NSArray *array = [[[NSArray alloc] initwithobjects:@"a",@"b",@"c",nil] autorelease]; autorelease 済み NSArray *array = [NSArray arraywithobjects:@"a",@"b",@"c",nil]; 数値 int i = 2 int i = 100000000; float radius = 1.0f; double diameter = 2 * M_PI * radius; 四則演算 num = 1 + 1; num = 1-1; num = 1 * 2; num = 1 / 2;

2/5 ページ 商の求め方です 割る数と割られる数が両方とも整数の場合 計算結果の小数点以下が切り捨てられます num = 1 / 2; // 0 割る数と割られる数のどちらかが小数の場合 計算結果の小数点以下が切り捨てられません num = 1.0 / 2; // 0.5 num = 1 / 2.0; // 0.5 num = 1.0 / 2.0; // 0.5 余りの求め方です // 余り mod = 4 % 2; インクリメントとデクリメント // インクリメント num++; ++num; // デクリメント num--; --num; 単体で使用する場合には どちらを使用しても問題ないですが 代入式で使用する場合には注意が必要です 文字列 文字列の表現文字列はNSStringを使います リテラル表現として @"" が使えます NSStringは変更不可能な文字列です NSString *string = @"Hello World!"; 変更可能な文字列は NSMutableString * string = [NSMutableString stringwithstring:@"hello World!"]; 文字列操作 // 結合 NSMutableString * string = [NSMutableString stringwithstring:@"aaa"]; [string appendstring:@"bbb"] // 分割 NSMutableString * string = [NSMutableString stringwithstring:@"aaa,bbb,ccc"]; NSArray *record = [string componentsseparatedbystring:@","]; // 長さ int length = [@"abcdef" length]; // 切り出し NSString *string = [@"abcd" substringwithrange:nsmakerange(0,2)]; // ab // 検索 NSString *string = @"abcd"; NSRange range = [string rangeofstring:@"cd"]; NSLog(@"%d:%d",range.location,range.length); // みつからない場合には length = 0 になる 配列 宣言 NSArray *array; 配列の生成 NSArray *array; array = [NSArray arraywithobjects: @"a",@"b",@"c",nil]; NSMutableArray *array = [NSMutableArray array]; // 変更可能な配列を宣言と同時に代入 要素の参照と代入 // 要素の参照 [array objectatindex:0]; [array objectatindex:1]; // 代入 (NSMutableArray のインスタンス ) [array removeobjectatindex:1]; // 一度要素を削除して [array insertobject:@"1" atindex:1]; // 削除したとこに挿入 配列の要素数 int array_num = [array count]; 辞書 宣言 NSDictionary *dictinary; dictionary = [NSDictionary dictionarywithobjectsandkeys: @"value1",@"key1", @"value2",@"key2", nil, ]; NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; // 変更可能な辞書を宣言と同時に代入 > objc 要素の参照と代入

3/5 ページ // 要素の参照 id val1 = [dictionary objectforkey:@"key1"]; id val2 = [dictionary objectforkey:@"key2"]; // 代入 (NSMutableDictionary のインスタンス ) > objc [dictionary setobject:@"value1" forkey:@"key1"]; 辞書の操作 キーの取得 NSArray *keys = [dictionary allkeys] 値の取得 NSArray *values = [dictionary allvalues]; キーの削除 (NSMutableDictionary のインスタンス ) [dictionary removeobjectforkey:@"key1"]; 制御文 if 文 if( 条件 ){ if ~ else 文 if ( 条件 ){ else{ if ~ else if 文 if ( 条件 ){ else if( 条件 ){ while 文 int i = 0; while(i < 5){ i++ for 文 for(int i=0;i<5;i++){ // 処理 関数定義 C 言語の関数定義も可能 基本的にクラスのメソッドとして定義します また 既存のクラスを拡張する方法としてカテゴリというものがあります @interface ClassA : NSObject{ NSString *name_; @property (nonatomic,copy) NSString *name_; -(void) helloworld:(nsstring *)name{ NSLog(@"hello %@ world! from %@",name,self.name_); ファイル入出力 NSString *inputfilepath = [INPUTFILEPATH stringbyexpandingtildeinpath]; NSString *outputfilepath = [OUTPUTFILEPATH stringbyexpandingtildeinpath]; NSFileManager *fm = [NSFileManager defaultmanager]; if(![fm fileexistsatpath:outputfilepath]){ [fm createfileatpath:outputfilepath contents:nil attributes:nil]; NSFileHandle *input = [NSFileHandle filehandleforreadingatpath:inputfilepath]; NSFileHandle *output = [NSFileHandle filehandleforwritingatpath:outputfilepath]; @try{ NSData *data; while((data = [input readdataoflength:1024]) && 0 < [data length]){ [output writedata:data]; @finally { [input closefile]; [output closefile]; 知っておいたほうがよいっておいたほうがよい文法 高速列挙 NSArrayやNSDictionaryは高速列挙という方法によって要素の列挙が簡単にできます

4/5 ページ NSArray *array = [NSArray arraywithobjects: @"A",@"B",@"C",nil]; for(id i in array){ NSDictionary *dictionary = [NSDictionary dictionarywithobjectsandkeys: ]; @"value1",@"key1", @"value2",@"key2", @"value3",@"key3", nil // キーでループする場合 for(id i in [dictionary keyenumerator]){ // 値でループする場合 for(id i in [dictionary objectenumerator]){ 一時変数は id で受けてもいいし キーの型が判明している時には型を指定した方が良いでしょう for(nsstring *k in [dictionary keyenumerator]){ // 処理 カテゴリ LLのように既存のクラスにメソッドを追加することができます @interface NSString (Decorate) // カテゴリに属するメソッド定義を行う - (NSString *) decoratewithstring:(nsstring *)string; @implementation NSString (Decorate) -(NSString *) decoratewithstring:(nsstring *)string{ return [NSString stringwithformat:@"%@%@%@",string,self,string]; NSLog(@"test: %@",[@"[MSG]" decoratewithstring:@"**"]); // **[MSG]** プロトコルクラスがプロトコルに適合しますと宣言された場合 プロトコルで規定されているメソッドを実装しなければならないようにすることができます プロパティクラスのメンバ変数へのアクセサを提供する機能です 使用するにあたって知っておくべきことがいくつかありますが ひとつだけ紹介します @property (nonatomic, retain) NSArray *array_; 上記のように retain で宣言されたプロパティへの代入はアクセサを通さないと retain が有効になりません -(id)initwithparam:(nsarray *)array{ if(self = [super init]){ array_ = array; // retainされない self.array_ = array; // retainされる return self; -(void)dealloc{ [array_ release]; [super dealloc]; retainされていない状態となるので 自分が保持しているにもかかわらず外部の処理で releaseされることでオブジェクトが破棄される可能性があります 破棄されてしまうと EXC_BAD_ACCESS もしくはdouble freeが発生します 初心者には気づきにくいと思われますのでご注意ください 検証してみた : アクセサ通さないとretainされない件 - fn7の日記 Google Objective-C スタイルガイド日本語訳まだ少ししか読んでないけど すごく勉強になります GoogleObjective-Cスタイルガイド日本語訳 [ 参考資料 ] Cocoa でファイル入出力 -- BONNOH FRACTION 13 NSRange を作るのなら NSMakeRange 関数を使う - irss の日記 - iphone アプリ開発グループ Permalink コメント (0) 23:24 コマンドラインでコンパイルコンパイル 勉強, プログラミング, Objective-C 意外と簡単にコンパイルができるようだ Xcode から適当なプロジェクトを作成して main.m だけとり出す main.m を適当に編集しちゃう

5/5 ページ #import <Cocoa/Cocoa.h> int main(){ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog(@"Hello World!"); [pool release]; return 0; コンパイルしてエラーがなければ実行する $ gcc main.m -o main -framework Cocoa &&./main [ 参考 ] Objective-C の実験コードを main だけ書いて gcc でコンパイルする方法 - 拡張現実ライフ - モバイルデジタルサイネージ編 Permalink コメント (0) 23:38 コメントを書く なまえメール ( 非公開 ) URL 5 6 画像認証 画像内の文字列を入力して下さい 投稿 リンク元 76 http://d.hatena.ne.jp/seikenn/20100203/programmingmaster 47 http://b.hatena.ne.jp/hotentry/it 45 http://b.hatena.ne.jp/hotentry 42 http://b.hatena.ne.jp/ 34 http://b.hatena.ne.jp/entrylist 28 http://reader.livedoor.com/reader/ 20 http://www.google.co.jp/reader/view/ 18 http://www.google.com/reader/view/ 11 http://www.google.co.jp/reader/view/?hl=ja&tab=wy 9 http://ig.gmodules.com/gadgets/ifr? view=home&url=http://www.hatena.ne.jp/tools/gadget/bookmark/bookmark_gadget.xml&nocache=0&up_display_item=10&up_display_thumbnail=false&up_display_summary=true&up_category_all=true&up_category_general=true&up_category_so おとなり日記 2010-02-01 かわおの徒然記 5/49 10% 2010-02-03 うなの日記 5/52 9% 2010-02-02 プログラマーの脳みそ 10/132 7% 2010-02-02 プログラミング言語を作る日記 7/90 7% 2010-02-01 notes plastiques 6/86 6% <[ 勉強 ][ プログラミング ][Objecti... [ 雑記 ][Apple]iPad は想像以上 >