This is CS50
This is CS50
#include <stdio.h>
int main(void)�{
printf("hello, world");
}
#include <stdio.h>
int main(void)�{
printf("hello, world");
}
correctness
design
style
#include <stdio.h>
int main(void)�{
printf("hello, world");
}
CS50 IDE
#include <stdio.h>
int main(void)�{
printf("hello, world");
}
01111111 01000101 01001100 01000110 00000010 00000001 00000001 00000000�00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000�00000010 00000000 00111110 00000000 00000001 00000000 00000000 00000000�10110000 00000101 01000000 00000000 00000000 00000000 00000000 00000000�01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000�11010000 00010011 00000000 00000000 00000000 00000000 00000000 00000000�00000000 00000000 00000000 00000000 01000000 00000000 00111000 00000000�00001001 00000000 01000000 00000000 00100100 00000000 00100001 00000000�00000110 00000000 00000000 00000000 00000101 00000000 00000000 00000000�01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000�01000000 00000000 01000000 00000000 00000000 00000000 00000000 00000000�01000000 00000000 01000000 00000000 00000000 00000000 00000000 00000000�11111000 00000001 00000000 00000000 00000000 00000000 00000000 00000000�11111000 00000001 00000000 00000000 00000000 00000000 00000000 00000000�00001000 00000000 00000000 00000000 00000000 00000000 00000000 00000000�00000011 00000000 00000000 00000000 00000100 00000000 00000000 00000000�00111000 00000010 00000000 00000000 00000000 00000000 00000000 00000000�...
input →
→ output
source code →
source code →
→ machine code
compiler
source code →
→ machine code
make hello
./hello
functions, arguments
printf("hello, world");
printf("hello, world");
printf("hello, world");
printf("hello, world");
printf("hello, world");
printf("hello, world");
functions
functions
arguments →
side effects
return values, variables
string answer = get_string("What's your name?\n");
printf("hello, %s", answer);
string answer = get_string("What's your name?\n");
printf("hello, %s", answer);
string answer = get_string("What's your name? ");
printf("hello, %s", answer);
string answer = get_string("What's your name? ");
printf("hello, %s", answer);
string answer = get_string("What's your name? ");
printf("hello, %s", answer);
string answer = get_string("What's your name? ");
printf("hello, %s", answer);
functions
functions
arguments →
functions
arguments →
→ return value
string answer = get_string("What's your name?\n");
printf("hello, %s", answer);
printf("hello, %s", answer);
printf("hello, %s", answer);
printf("hello, %s", answer);
main
int main(void)�{
}
int main(void)�{
}
header files
#include <stdio.h>
int main(void)�{
printf("hello, world");
}
#include <stdio.h>
int main(void)�{
printf("hello, world");
}
#include <stdio.h>
int main(void)�{
printf("hello, world");
}
#include <stdio.h>
int main(void)�{
printf("hello, world\n");
}
help50
style50
check50
cd
cp
ls
mkdir
mv
rm
rmdir
...
types
bool
char
double
float
int
long
string
...
get_char
get_double
get_float
get_int
get_long
get_string
...
format codes
%c
%f
%i
%li
%s
%c char
%f float, double
%i int
%li long
%s string
operators
+
-
*
/
%
+ addition
- subtraction
* multiplication
/ division
% remainder
variables, syntactic sugar
int counter = 0;
int counter = 0;
int counter = 0;
int counter = 0;
counter = counter + 1;
counter = counter + 1;
counter = counter + 1;
counter += 1;
counter++;
conditions
if (x < y)�{
printf("x is less than y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
else
{� printf("x is not less than y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
else
{� printf("x is not less than y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
else
{� printf("x is not less than y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
else if (x > y)
{� printf("x is greater than y\n");
}
else if (x == y)
{� printf("x is equal to y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
else if (x > y)
{� printf("x is greater than y\n");
}
else if (x == y)
{� printf("x is equal to y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
else if (x > y)
{� printf("x is greater than y\n");
}
else if (x == y)
{� printf("x is equal to y\n");
}
if (x < y)�{
printf("x is less than y\n");
}
else if (x > y)
{� printf("x is greater than y\n");
}
else
{� printf("x is equal to y\n");
}
loops
while (true)
{
printf("hello, world\n");
}
while (true)
{
printf("hello, world\n");
}
while (true)
{
printf("hello, world\n");
}
while ( )
{
printf("hello, world\n");
}
while (true)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
int counter = 0;
while (n > 0)
{
printf("hello, world\n");
i = i + 1;
}
int i = 0;
while (n > 0)
{
printf("hello, world\n");
i = i + 1;
}
int i = 0;
while (n > 0)
{
printf("hello, world\n");
i = i + 1;
}
int i = 0;
while (i < 50)
{
printf("hello, world\n");
i = i + 1;
}
int i = 0;
while (i < 50)
{
printf("hello, world\n");
i = i + 1;
}
int i = 0;
while (i < 50)
{
printf("hello, world\n");
i = i + 1;
}
int i = 0;
while (i < 50)
{
printf("hello, world\n");
i += 1;
}
int i = 0;
while (i < 50)
{
printf("hello, world\n");
i++;
}
int i = 1;
while (i <= 50)
{
printf("hello, world\n");
i++;
}
int i = 50;
while (i > 0)
{
printf("hello, world\n");
i--;
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
for (int counter = 0; i < 50; i )
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i += 1)
{
printf("hello, world\n");
}
for (int i = 0; i < 50; i++)
{
printf("hello, world\n");
}
abstraction
scope
floating-point imprecision
integer overflow
0000
0001
0010
0011
0100
0101
0110
0111
1000
1000
1 January 2000
095
096
097
098
099
100
100
19 January 2038
This is CS50