Основы программирования на языке Си

Содержание

Слайд 2

Простейшая программа main() { } главная (основная) программа всегда имеет имя

Простейшая программа

main()
{
}

главная (основная) программа всегда имеет имя main

начало программы

«тело» программы (основная часть)

конец

программы
Слайд 3

Что происходит дальше? main() { } first.cpp исходный файл first.o транслятор

Что происходит дальше?

main()
{
}

first.cpp

исходный файл

first.o

транслятор

ЪБzЦ2?|ё3БКа
n/36ШпIC+И-
ЦЗ_5МyРЧб
s6bд^:/@:лЖ1_

объектный файл

стандартные функции

редактор связей
(компоновка)

MZPо:ЄPэ_еЗ"!_
`кn,ЦbЄ-Щр1 
G_БАC,
_Ощях¤9жФ

first.exe

исполняемый файл

текст программы на Си или

Си++
Слайд 4

Вывод текста на экран #include main() { printf("Привет!"); } include =

Вывод текста на экран

#include
main()
{
printf("Привет!");
}

include = включить

файл stdio.h: описание стандартных функций

ввода и вывода

вызов стандартной функции
printf = print format (форматный вывод)

этот текст будет на экране

Слайд 5

Как начать работу? здесь мы набираем программу сообщения об ошибках Открыть Новый Сохранить Закрыть

Как начать работу?

здесь мы набираем программу

сообщения об ошибках

Открыть

Новый

Сохранить

Закрыть

Слайд 6

Оболочка Dev C ++ 4.9 IDE = Integrated Development Environment интегрированная

Оболочка Dev C ++ 4.9

IDE = Integrated Development Environment
интегрированная среда

разработки:
текстовый редактор для создания и редактирования текстов программ
транслятор для перевода текстов программ на Си и Си++ в команды процессора
компоновщик для создания исполняемого файла (EXE-файла), подключаются стандартные функции
отладчик для поиска ошибок в программах
Слайд 7

Управление клавишами

Управление клавишами

Слайд 8

Где ошибки? 2 x ЛКМ эта ошибка обнаружена здесь!

Где ошибки?

2 x ЛКМ

эта ошибка обнаружена здесь!

Слайд 9

Наиболее «популярные» ошибки

Наиболее «популярные» ошибки

Слайд 10

Ждем нажатия любой клавиши #include #include main() { printf("Привет!"); // вывод

Ждем нажатия любой клавиши

#include
#include
main()
{
printf("Привет!"); // вывод на экран
/*

ждать нажатия клавиши */
}

файл conio.h: описание функций для работы с клавиатурой и монитором

ждать нажатия на любую клавишу

комментарий до конца строки

комментарий между /* и */

getch();

Слайд 11

Переход на новую строку #include #include main() { printf("Привет,\n Вася!"); getch();

Переход на новую строку

#include
#include
main()
{
printf("Привет,\n Вася!");
getch();
}

Привет,
Вася!

на экране:

последовательность \n (код

10)
переход на новую строку

\n

Слайд 12

Задания «4»: Вывести на экран текст "лесенкой" Вася пошел гулять «5»:

Задания

«4»: Вывести на экран текст "лесенкой"
Вася
пошел
гулять
«5»: Вывести на

экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
Слайд 13

Что такое переменная? Переменная – это ячейка в памяти компьютера, которая

Что такое переменная?

Переменная – это ячейка в памяти компьютера, которая имеет

имя и хранит некоторое значение.
Значение переменной может меняться во время выполнения программы.
При записи в ячейку нового значения старое стирается.
Типы переменных
int – целое число (4 байта)
float – вещественное число, floating point (4 байта)
char – символ, character (1 байт)
Слайд 14

Имена переменных Могут включать латинские буквы (A-Z, a-z) знак подчеркивания _

Имена переменных

Могут включать
латинские буквы (A-Z, a-z)
знак подчеркивания _
цифры 0-9
НЕ могут включать
русские

буквы
пробелы
скобки, знаки +, =, !, ? и др.

Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Слайд 15

Объявление переменных Объявить переменную = определить ее имя, тип, начальное значение,

Объявление переменных

Объявить переменную = определить ее имя, тип, начальное значение, и

выделить ей место в памяти.

main()
{
int a;
float b, c;
int Tu104, Il86=23, Yak42;
float x=4.56, y, z;
char c, c2='A', m;
}

целая переменная a

вещественные переменные b и c

целые переменные Tu104, Il86 и Yak42
Il86 = 23

вещественные переменные x, y и z
x = 4,56

·

целая и дробная части отделяются точкой

символьные переменные c, c2 и m
c2 = 'A'

Слайд 16

Оператор присваивания Оператор – это команда языка программирования высокого уровня. Оператор

Оператор присваивания

Оператор – это команда языка программирования высокого уровня.
Оператор присваивания служит

для изменения значения переменной.
Пример

a = 5;
x = a + 20;
y = (a + x) * (x – a);

5

25

600

Слайд 17

Оператор присваивания Общая структура: Арифметическое выражение может включать константы (постоянные) имена

Оператор присваивания

Общая структура:

Арифметическое выражение может включать
константы (постоянные)
имена переменных
знаки арифметических операций:
+

- * / %
вызовы функций
круглые скобки ( )

умножение

деление

остаток от деления

имя переменной = выражение;

куда записать

что

Слайд 18

main() { int a, b; float x, y; a = 5;

main()
{
int a, b;
float x, y;
a =

5;
10 = x;
y = 7,8;
b = 2.5;
x = 2*(a + y);
a = b + x;
}

Какие операторы неправильные?

имя переменной должно быть слева от знака =

целая и дробная часть отделяются точкой

при записи вещественного значения в целую переменную дробная часть будет отброшена

Слайд 19

Особенность деления в Си main() { int a = 7; float

Особенность деления в Си

main()
{
int a = 7;
float x;
x = a /

4;
x = 4 / a;
x = float(a) / 4;
x = 1.*a / 4;
}

1

0

1.75

1.75

Слайд 20

Сокращенная запись операций в Си инкремент декремент a = a +

Сокращенная запись операций в Си

инкремент

декремент

a = a + 1;

a++;

a = a

+ b;

a += b;

a = a - 1;

a--;

a = a – b;

a -= b;

a = a * b;

a *= b;

a = a / b;

a /= b;

a = a % b;

a %= b;

Слайд 21

Ручная прокрутка программы main() { int a, b; a = 5;

Ручная прокрутка программы

main()
{
int a, b;
a = 5;
b =

a + 2;
a = (a + 2)*(b – 3);
b = a / 5;
a = a % b;
a++;
b = (a + 14) % 7;
}

5

7

28

5

3

4

4

?

?

Слайд 22

Порядок выполнения операций вычисление выражений в скобках умножение, деление, % слева

Порядок выполнения операций

вычисление выражений в скобках
умножение, деление, % слева направо
сложение и

вычитание слева направо

2 3 5 4 1 7 8 6 9
z = (5*a*c+3*(c-d))/a*(b-c)/ b;

2 6 3 4 7 5 1 12 8 11 10 9
x =(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

Слайд 23

Сложение двух чисел Задача. Ввести два целых числа и вывести на

Сложение двух чисел

Задача. Ввести два целых числа и вывести на экран

их сумму.

Простейшее решение:

#include
#include
main()
{
int a, b, c;
printf("Введите два целых числа\n");
scanf ("%d%d", &a, &b);
c = a + b;
printf("%d", c);
getch();
}

подсказка для ввода

ввод двух чисел с клавиатуры

вывод результата

Слайд 24

Ввод чисел с клавиатуры scanf ("%d%d", &a, &b); формат ввода scanf

Ввод чисел с клавиатуры

scanf ("%d%d", &a, &b);

формат ввода

scanf – форматный ввод

адреса

ячеек, куда записать введенные числа

Формат – символьная строка, которая показывает, какие числа вводятся (выводятся).
%d – целое число
%f – вещественное число
%c – 1 символ
%s – символьная строка

12

7652

a – значение переменной a

&a – адрес переменной a

ждать ввода с клавиатуры двух целых чисел (через пробел или Enter), первое из них записать в переменную a, второе – в b

Слайд 25

Что неправильно? int a, b; scanf ("%d", a); scanf ("%d", &a,

Что неправильно?

int a, b;
scanf ("%d", a);
scanf ("%d", &a, &b);
scanf ("%d%d", &a);
scanf

("%d %d", &a, &b);
scanf ("%f%f", &a, &b);

&a

%d%d

&a, &b

убрать пробел

%d%d

Слайд 26

Вывод чисел на экран printf ("%d", c); здесь вывести целое число

Вывод чисел на экран

printf ("%d", c);

здесь вывести целое число

это число взять

из ячейки c

printf ("Результат: %d", c);

printf ("%d+%d=%d", a, b, c );

формат вывода

список значений

a, b, c

printf ("%d+%d=%d", a, b, a+b );

арифметическое выражение

Слайд 27

Вывод целых чисел int x = 1234; printf ("%d", x); 1234

Вывод целых чисел

int x = 1234;
printf ("%d", x);

1234

printf ("%9d", x);

минимальное число

позиций

1234

всего 9 позиций

или "%i"

или "%9i"

5

4

Слайд 28

Вывод вещественных чисел float x = 123.4567; printf ("%f", x); 123.456700

Вывод вещественных чисел

float x = 123.4567;
printf ("%f", x);

123.456700

printf ("%9.3f", x);

минимальное число

позиций, 6 цифр в дробной части

123.456

всего 9 позиций, 3 цифры в дробной части

printf ("%e", x);

1.234560e+02

стандартный вид: 1,23456·102

printf ("%10.2e", x);

1.23e+02

всего 10 позиций, 2 цифры в дробной части мантиссы

Слайд 29

Полное решение #include #include main() { int a, b, c; printf("Введите

Полное решение

#include
#include
main()
{
int a, b, c;
printf("Введите два целых

числа\n");
scanf("%d%d", &a, &b);
c = a + b;
printf("%d+%d=%d", a, b, c);
getch();
}

Протокол:
Введите два целых числа
25 30
25+30=55

это выводит компьютер

это вводит пользователь

Слайд 30

Блок-схема линейного алгоритма начало конец c = a + b; ввод

Блок-схема линейного алгоритма

начало

конец

c = a + b;

ввод a, b

вывод c

блок «начало»

блок

«ввод»

блок «процесс»

блок «вывод»

блок «конец»

Слайд 31

Задания «4»: Ввести три числа, найти их сумму и произведение. Пример:

Задания

«4»: Ввести три числа, найти их сумму и произведение.
Пример:
Введите

три числа:
4 5 7
4+5+7=16
4*5*7=140
«5»: Ввести три числа, найти их сумму, произведение и среднее арифметическое.
Пример:
Введите три числа:
4 5 7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.33