21.1.14
16652 ワード
#1.コース:コンピュータ科学の基礎(1-3課)
#2.授業内容:全員向けコンピュータ科学(CS 502019)計算事故 バイナリ:再起動します.コンピュータ言語.
バイナリを1桁で表す単位をビット、8バイト(8ビット)と表す. 情報の表示(コンピュータ処理文字、写真、ビデオ等) .
文字:ASCIIコードを使用して文字に数字+Unicode(記号など)を付ける
(小文字が異なるAskyコードリンク)
色:RGB&その程度の数値の組み合わせ.(画素連続)
画像/ビデオ:複数の画像の連続.(バイナリとRGB連続)
音楽:音符の連続を数字で表す.アルゴリズム
ある事柄を実行する段階的な方法.(ステップ1、電話帳の検索に等しい);段階的に効果的に問題を解決する.規則の順序付け.(精度と効率に基づくアルゴリズム評価) 疑似コード(C、python...)
関数#カンスウ#
if/else:条件文
答えは真実/偽:Boolean
ループスクラッチベース/深化
じっけんスクラッチ コードの原理、コードの効率(減少、抽象) C言語ベース(CS 50 Sandboxより) "hello, world"
ソースコードをマシンコードと認識することをコンパイラと呼ぶ.(ソースコード:c,python...,マシンコード:00001...)
ターミナルで
ファイナルターミナル文字列の処理:変数を事前に宣言する必要があります.
%~:正規表現として使用します.
これからはあまり複雑なことはありません.
まだあります.ファイルの名前を付けるときにコンパイラを自動的に接続する条件文とループ
条件文はJavaScriptまたはPythonに似ています
for,whileも に似ているデータ型(ブール、char、double、float、int、long、string...) 基本例
小数点ですね.
if文でシールドを記述する
コメントは//に書けばいいです.
or|||を使用できます.&およびユーザ定義関数/ネスト反復文
コードが長くなると、関数の条件をさらに明確にするための措置ハードウェアの限界:コンピュータができることは限られています.(例えば、レム容量の制限)これをオーバーフローと呼ぶ.
無限反復文もそうです.途中で突然エラーが発生しましたアレイ
コンパイル(このプロシージャを通過したときにのみうなずく)
前処理(#include)->完了(複数のコマンドにコンパイル)->アセンブリ(0101010101010...)->リンク(成果物)
デバッグ:エラーの解決方法(エラーが発生した場合、help 50を使用してエラー検索できます)
コード設計:check 50(コードテスト)、style 50(コードの審美状態検査)
シナリオ1:コンピュータが情報を格納する方法
大きさによってリムで数字を整理しているのも見たので、実際にリストを作ることにしました.アレイ2 グローバル変数の表示を容易にする文字列と配列
文字列(string)はcharの配列(1文字1文字の配列であるため、シーケンス型の) である.
文字列の終了情報をnull,0と呼び,終了文字とも呼ぶ.(長さの大きさ)
HI! -> 3+1バイト(終端文字を含む)
1 D配列+2 D配列(各アルファベットをインデックス;文字列出力原理を表示);Pythonからfori in~~を引いて1文字列をインデックスとして整理すればよい.文字列(文字列内で文字を検索/他の文字に置換) を使用する.
文字列1コマンドラインパラメータ:int main(void)の説明
コマンドラインパラメータ(../argv david;パラメータの受信と出力など)が受信された場合、 となる.
c言語関数の例では、他の関数がそれ自体を最初の戻り値(self)としているように見える.
問題はすべて解決して、電気が切れました...ほほほ、まず復習するなら、明日自分でもう一度和弦を打ってください.すべてのc言語が理解できなくても、まず概念を決めてから行きましょう.
#2.授業内容:全員向けコンピュータ科学(CS 502019)
バイナリを1桁で表す単位をビット、8バイト(8ビット)と表す.
文字:ASCIIコードを使用して文字に数字+Unicode(記号など)を付ける
(小文字が異なるAskyコードリンク)
色:RGB&その程度の数値の組み合わせ.(画素連続)
画像/ビデオ:複数の画像の連続.(バイナリとRGB連続)
音楽:音符の連続を数字で表す.
ある事柄を実行する段階的な方法.(ステップ1、電話帳の検索に等しい);段階的に効果的に問題を解決する.規則の順序付け.(精度と効率に基づくアルゴリズム評価)
関数#カンスウ#
if/else:条件文
答えは真実/偽:Boolean
ループ
じっけんスクラッチ
#include <stdio.h>
int main(void){
printf("hello wolrd!");
}
一重引用符ソースコードをマシンコードと認識することをコンパイラと呼ぶ.(ソースコード:c,python...,マシンコード:00001...)
ターミナルで
clang hello.c(a.out 생성)
./a.out(실행)
私に改行させたいなら?#include <stdio.h>
int main(void){
printf("hello wolrd!\n");
}
n個別に記入する必要があります(再コンパイル後...)ファイナルターミナル
$ clang hello.c
$ ./a.out
hello wolrd!
a.outを除いて、他のものを試してみます.$ clang -o hello hello.c
$ ./hello
hello wolrd!
それ以外にls,rmなどは端末と同じである.(ファイルをチェック、クリア...)#include <cs50.h>
#include <stdio.h>
int main(void){
string animal = get_string("what is your favorite animal?\n");
printf("my favorite animal is, %s\n", animal);
}
#後ろにあるのはライブラリです.(get....python importなど、いくつかの機能を可能にします.)%~:正規表現として使用します.
これからはあまり複雑なことはありません.
$ clang -o hello hello.c
$ ./hello
に代わるmake ~(파일명)
./~
결과 나오면 거기에 animal 값 입력
what is your favorite animal?
cat
my favorite animal is, cat
入力すると、前にしたことはしなくてもいいです.まだあります.ファイルの名前を付けるときにコンパイラを自動的に接続する
条件文はJavaScriptまたはPythonに似ています
for,whileも
int i = 0;
while(i < 50)
{
printf("hello, world\n");
i += 1;
}
for (int i = 0 ; i < 10 ; i += 1) # ; 사이사이에 다 넣기
{
printf("hello, world\n");
}
No rule to make target
間違えたらclangで解けます#include <cs50.h>
#include<stdio.h>
int main(void){
int age = get_int("what's your age\n");
int days = age * 365;
printf("You are at least %i days old.\n", days);
}
what's your age
50
You are at least 18250 days old.
コードの可読性を考える(int dayを減らすことができると考えられる)小数点ですね.
#include <cs50.h>
#include<stdio.h>
int main(void){
float price = get_float("What's the price?\n");
printf("Your total is %f.\n", price * 1.0625);
}
What's the price?
100
Your total is 106.250000.
ここで2 fに変更すると2桁しか表示されません(Python文字列を使用した正規表現を考慮)if文でシールドを記述する
#include <cs50.h>
#include <stdio.h>
int main(void){
int n = get_int("n: ");
if (n % 2 == 0){
printf("even\n");
}
else{
printf("odd\n");
}
}
elseに特別な条件をつけないのもPythonと同じです.コメントは//に書けばいいです.
or|||を使用できます.&および
#include <cs50.h>
#include <stdio.h>
int main(void){
for (int i = 0; i < 3 ; i++){
printf("cough\n");
}
}
関数を加えるとこうなります.void cough(void){
printf("cough\n");
}
int main(void)
{
for (int i = 0; i < 3 ; i++)
{
cough();
}
}
作成した関数は、咳(void位置)条件を次のホームページに印刷します.結果は上の複文と同じですが、それぞれのキャラクターに集中できます.コードが長くなると、関数の条件をさらに明確にするための措置
#include <cs50.h>
#include <stdio.h>
void cough(void); //위로 복사해서 올린다.
int main(void)
{
for (int i = 0; i < 3 ; i++)
{
cough();
}
}
void cough(void){
printf("cough\n");
}
メインの結果値に基づいて値が指定されている場合(main値で操作するために必要な出力回数;咳関数をパラメータとしてmain関数をパラメータとして操作するのと同様).
#include <stdio.h>
void cough(int n);
int main(void)
{ cough(3);
}
void cough(int n){
for (int i = 0; i < n ; i++){
printf("cough\n");
}
}
負の値の場合、値が出ないdo-whileの例が返されます.#include<cs50.h>
#include <stdio.h>
int get_positive_int(void);
int main(void){
int i = get_positive_int();
printf("%i\n", i);
}
int get_positive_int(void){
int n;
do
{
n = get_int("Positive Integer: ");
}
while(n < 1);
return n;
}
スーパーマリオゲームを使ったリピートサイクル:Python星を描く原理に似ています.#include <cs50.h>
#include<stdio.h>
int main(void)
{
float x = get_float("x:");
float y = get_float("y:");
printf("x/y = %.50f\n", x / y);
}
x:0.34
y:0.56
x/y = 0.60714286565780639648437500000000000000000000000000
無限の数字を100%正確に計算して記憶することはできないので、1/10まで正確にしたいと思います.(ハードウェア自体の制限)無限反復文もそうです.途中で突然エラーが発生しました
コンパイル(このプロシージャを通過したときにのみうなずく)
前処理(#include)->完了(複数のコマンドにコンパイル)->アセンブリ(0101010101010...)->リンク(成果物)
デバッグ:エラーの解決方法(エラーが発生した場合、help 50を使用してエラー検索できます)
コード設計:check 50(コードテスト)、style 50(コードの審美状態検査)
シナリオ1:コンピュータが情報を格納する方法
#include <stdio.h>
int main(void){
char c1 = 'H';
char c2 = 'I';
char c3 = '!';
printf("%c %c %c\n", c1, c2, c3);
}
H I !
만일 정수로 하려면?
#include <stdio.h>
int main(void){
char c1 = 'H';
char c2 = 'I';
char c3 = '!';
printf("%i %i %i\n", (int)c1, (int)c2, (int)c3);
}
72 73 33 // by 아스키코드
各値(c 1,c 2,c 3)は、1つの格の意味を格納する.(実際にはバイナリですが、Askyコードに従って出力されます.)大きさによってリムで数字を整理しているのも見たので、実際にリストを作ることにしました.
#include <stdio.h>
#include <cs50.h>
int main(void){
int scores[3]; // 리스트와 인덱스 활용
scores[0] = 72;
scores[1] = 73;
scores[2] = 33;
printf("Average : %i\n", (scores[0]+scores[1]+scores[2]) / 3);
}
59
#include <stdio.h>
#include <cs50.h>
const int N = 3; //전역변수
int main(void){
int scores[N];
scores[0] = 72;
scores[1] = 73;
scores[2] = 33;
printf("Average : %i\n", (scores[0]+scores[1]+scores[2]) / N);
}
より効率的なコードの置き換え#include <stdio.h>
#include <cs50.h>
float average(int length, int array[]);
int main(void){
int n = get_int("Number of scores: ");
int scores[n];
for (int i = 0; i<n; i++){
scores[i] = get_int("Score %i:", i + 1);
}
printf("Average : %f\n", average(n, scores));
}
float average(int length, int array[]){
int sum = 0;
for (int i = 0; i<length; i++){
sum += array[i];
}
return (float) sum / (float) length;
}
関数を作成して整数と名前を付けて計算します(この整数は認識され計算されるので、この値は整数になり、小数点しか加算されないのでfloatを貼り付けます)文字列(string)はcharの配列(1文字1文字の配列であるため、シーケンス型の)
文字列の終了情報をnull,0と呼び,終了文字とも呼ぶ.(長さの大きさ)
HI! -> 3+1バイト(終端文字を含む)
1 D配列+2 D配列(各アルファベットをインデックス;文字列出力原理を表示);Pythonからfori in~~を引いて1文字列をインデックスとして整理すればよい.
#include <stdio.h>
#include <cs50.h>
int main(void){
string names[4];
names[0] = "EMMA";
names[1] = "RORY";
names[2] = "BRIAN";
names[3] = "DAVID";
printf("%s\n", names[0]);
printf("%c%c%c%c\n", names[0][0], names[0][1], names[0][2], names[0][3]);
}
EMMA
EMMA
文字列1
#include <cs50.h>
#include <stdio.h>
int main(void){
string s = get_string("Input: ");
printf("Output: ");
for (int i = 0; s[i] != '\0' ; i++){
printf("%c", s[i]);
}
printf("\n");
}
Input: EMMA
Output: EMMA
儀式.#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main(void){
string s = get_string("Input: ");
printf("Output: ");
for (int i = 0; i < strlen(s) ; i++){
printf("%c", s[i]);
}
printf("\n");
}
改善の余地: for (int i = 0, n = strlen(s); i < n ; i++)
他の文字列で文字を変更:macbookの更新後にエラーが発生しました.まずハーモニーを知りましょう#include <cs50.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
string s = get_string("Before: ");
printf("After: ");
for (int i = 0, n = strlen(s); i < n; i++)
{
printf("%c", toupper(s[i]));
}
printf("\n");
}
これは何を入力するのか、アスキーコードで計算して大文字に変更するのか、よくわかりません.覚えておきましょう(ここはPass)コマンドラインパラメータ(../argv david;パラメータの受信と出力など)が受信された場合、
# include <cs50.h>
# include <stdio.h>
int main(int argc, string argv[]){
if (argc == 2){
printf("hello, %s\n", argv[1]);
} else {
printf("hello, world\n");
}
}
$ ./argv David
hello, David
main関数のデフォルトは戻り値です.(0,問題なし)c言語関数の例では、他の関数がそれ自体を最初の戻り値(self)としているように見える.
# include <cs50.h>
# include <stdio.h>
int main(int argc, string argv[]){
if (argc !=2){
printf("missing~\n");
return 1;
}
printf("hello, %s\n", argv[0]);
return 0;
}
$ ./exit
missing~
$ ./exit david
hello, ./exit
直接出力すると、デフォルトの戻り値を表し、入力した戻り値は最初の入力値(david)であり、0を返します./終了します.他の場所で最初の因子は自分,selfの意味に関連する概念である.問題はすべて解決して、電気が切れました...ほほほ、まず復習するなら、明日自分でもう一度和弦を打ってください.すべてのc言語が理解できなくても、まず概念を決めてから行きましょう.
Reference
この問題について(21.1.14), 我々は、より多くの情報をここで見つけました https://velog.io/@sinichy7/21.1.14テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol