Лекция 1_НИТ

Содержание

Слайд 2

Литература

Литература

Слайд 3

Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор

Программа

Программа – это
алгоритм, записанный на каком-либо языке программирования
набор команд для

компьютера

Команда – это описание действий, которые должен выполнить компьютер.
откуда взять исходные данные?
что нужно с ними сделать?
куда поместить результат?

Слайд 4

Языки программирования Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде

Языки программирования

Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора

(ассемблер)
Языки высокого уровня – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера
для обучения: Бейсик, ЛОГО, Паскаль
профессиональные: С/С++, Фортран, Паскаль
для задач искусственного интеллекта: Пролог, ЛИСП
для Интернета: JavaScript, Java, Perl, PHP, ASP
Слайд 5

Язык С 1972-1974 – Брайан Керниган, Дэнис Ритчи Язык, разработанный программистами

Язык С

1972-1974 – Брайан Керниган, Дэнис Ритчи
Язык, разработанный программистами для программистов
высокая

скорость работы программ
много возможностей
стал основой многих современных языков (С++, С#, Javascript, Java, ActionScript, PHP)
много шансов сделать ошибку, которая не обнаруживается автоматически
Слайд 6

Язык С++ 1979 – Бьёрн Страуструп, С with Classes С++ можно

Язык С++

1979 – Бьёрн Страуструп, С with Classes
С++ можно назвать расширенной

и улучшенной версией языка С, предназначенной для поддержки объектно-ориентированного программирования, имеет расширенный набор библиотечных функций Программист, а не язык программирования несет ответственность за результаты работы своей программы
Слайд 7

Язык С++ Помимо С++ существуют два других языка программирования – Java

Язык С++

Помимо С++ существуют два других языка программирования – Java и

C#
C++ - родительский язык
Синтаксис идентичен, подобная объектная модель
Отличие
Тип вычислительной среды, в которой разрабатывался каждый из этих языков
C++ разрабатывался для написания программ под управлением определенной ОС и в расчете на ЦП конкретного типа
Java и C# разработаны в ответ на потребности Internet, который связывает множество различных ЦП и ОС.
Слайд 8

Программа Объединенная единым алгоритмом совокупность описаний операторов Этапы создания исполняемой программы

Программа

Объединенная единым алгоритмом
совокупность описаний операторов

Этапы создания исполняемой программы

Выполняет директивы, содержащиеся

в тексте #

Текстовые файлы, в которых содержатся описания используемых в программе элементов

Распознает выражения и операторы, выявляет ошибки

Редактор связей – формирует исполняемый модуль программы, подключая объектные модули и функции библиотек

Слайд 9

Состав языка

Состав языка

Слайд 10

Алфавит языка

Алфавит языка

Слайд 11

Идентификаторы Имя программного объекта. В идентификаторе могут использоваться латинские буквы, цифры

Идентификаторы

Имя программного объекта.
В идентификаторе могут использоваться
латинские буквы, цифры и

знак подчеркивания. Прописные и строчные буквы различаются
Идентификатор не должен совпадать с ключевыми словами
Не рекомендуется начинать идентификаторы с символа подчеркивания
Слайд 12

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

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

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

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

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

Слайд 13

Ключевые слова Зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их

Ключевые слова

Зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно

использовать только в том смысле, в котором они определены.
Слайд 14

Знаки операций Один или более символов, определяющих действие над операндами

Знаки операций

Один или более символов, определяющих действие над операндами

Слайд 15

Слайд 16

Слайд 17

Константы

Константы

Слайд 18

Комментарии

Комментарии

Слайд 19

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

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

main()
{
}

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

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

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

конец

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

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

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

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

include = включить

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

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

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

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

Слайд 21

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

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

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

имя и хранит некоторое значение.
Значение переменной может меняться во время выполнения программы.
При записи в ячейку нового значения старое стирается
Тип данных определяет
Внутреннее предтавление данных в памяти компьютера
Множество значений, которые могут принимать величины этого типа
Операции и функции, которые можно применять к величинам этого типа
Слайд 22

Основные типы int – целое число (4 байта) float – вещественное

Основные типы
int – целое число (4 байта)
float – вещественное число,

floating point (4 байта)
double – вещественное число
char – символ, character (1 байт)
wchar_t – расширенный символьный
bool - логический тип (true – 1, false - 0)
Составные типы типы
Массивы
Перечисления
Функции
Структуры
Ссылки
Указатели
Объединения
Классы

Спецификаторы типа
short
long
signed
unsigned

Слайд 23

Слайд 24

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

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

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

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

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'

Слайд 25

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

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

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

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

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

5

25

600

Слайд 26

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

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

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

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

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

умножение

деление

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

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

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

что

Слайд 27

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;
}

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

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

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

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

Слайд 28

Особенность деления в Си 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

Слайд 29

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

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

инкремент

декремент

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;

Слайд 30

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

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

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

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

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));

Слайд 31

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

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

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

их сумму.

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

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

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

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

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

Слайд 32

Ввод чисел с клавиатуры 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

Слайд 33

Что неправильно? 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

Слайд 34

Вывод чисел на экран 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 );

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

Слайд 35

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

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

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

1234

printf ("%9d", x);

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

позиций

1234

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

или "%i"

или "%9i"

5

4

Слайд 36

Вывод вещественных чисел 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 цифры в дробной части мантиссы

Слайд 37

Полное решение #include #include int main() { int a, b, c;

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

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

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

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

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

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

Слайд 38

Ввод/вывод с использованием библиотеки классов С++ Задача. Ввести два целых числа

Ввод/вывод с использованием библиотеки классов С++

Задача. Ввести два целых числа и

вывести на экран их сумму.

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

#include
int main()
{
int a, b, c;
cout<<"Введите два целых числа“< cin>>a>>b;
c = a + b;
cout<<“c=”< return 0;
}

Операция помещения в поток

Операция чтения из потока

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

Слайд 39

Базовые конструкции структурного программирования

Базовые конструкции структурного
программирования

Слайд 40

Программирование на языке С Ветвления

Программирование на языке С

Ветвления

Слайд 41

Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран

Разветвляющиеся алгоритмы

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

из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.

Слайд 42

Вариант 1. Блок-схема полная форма ветвления блок «решение»

Вариант 1. Блок-схема

полная форма ветвления

блок «решение»

Слайд 43

Вариант 1. Программа main() { int a, b, max; printf("Введите два

Вариант 1. Программа

main()
{
int a, b, max;
printf("Введите два целых числа\n");

scanf("%d%d", &a, &b );
if (a > b) {
}
else {
}
printf("Наибольшее число %d", max);
}

max = a;

max = b;

полная форма условного оператора

Слайд 44

Условный оператор if ( условие ) { // что делать, если

Условный оператор

if ( условие )
{
// что делать, если

условие верно
}
else
{
// что делать, если условие неверно
}

Особенности:
вторая часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать { }

Слайд 45

Что неправильно? if a > b { a = b; }

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

if a > b {
a = b;
}

else
b = a;

if ( a > b ) {
a = b;
else
b = a;

if ( a > b )
else
b = a;

if ( a > b )
a = b;
c = 2*a;
else
b = a;

}

}

{

a = b;

Слайд 46

Вариант 2. Блок-схема неполная форма ветвления

Вариант 2. Блок-схема

неполная форма ветвления

Слайд 47

Вариант 2. Программа main() { int a, b, max; printf("Введите два

Вариант 2. Программа


main()
{
int a, b, max;
printf("Введите два целых числа\n");

scanf("%d%d", &a, &b );
max = a;
if (b > a)
printf("Наибольшее число %d", max);
}

max = b;

неполная форма условного оператора

Слайд 48

main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d",

main()
{
int a, b, max;
printf("Введите два целых числа\n");
scanf("%d%d", &a,

&b );
max = b;
if ( ??? )
???
printf("Наибольшее число %d", max);
}

Вариант 2Б. Программа

max = a;

a > b

Слайд 49

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

Задания

«4»: Ввести три числа и найти наибольшее из них.
Пример:
Введите три

числа:
4 15 9
Наибольшее число 15
«5»: Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56
Слайд 50

Программирование на языке Си Сложные условия

Программирование на языке Си

Сложные условия

Слайд 51

Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет

Сложные условия

Задача. Фирма набирает сотрудников от 25 до 40 лет включительно.

Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.
Слайд 52

Вариант 1. Алгоритм начало ввод x 'подходит' конец да нет x

Вариант 1. Алгоритм

начало

ввод x

'подходит'

конец

да

нет

x >= 25?

да

нет

x <= 40?

'не подходит'

'не подходит'

Слайд 53

Вариант 1. Программа main() { int x; printf("Введите возраст\n"); scanf("%d", &x);

Вариант 1. Программа

main()
{
int x;
printf("Введите возраст\n");
scanf("%d", &x);
if (x >=

25)
if (x <= 40)
printf("Подходит");
else printf("Не подходит");
else
printf("Не подходит");
}
Слайд 54

Вариант 2. Алгоритм начало ввод x 'подходит' да нет x >= 25 и x 'не подходит'

Вариант 2. Алгоритм

начало

ввод x

'подходит'

да

нет

x >= 25 и
x <= 40?

'не подходит'

Слайд 55

Вариант 2. Программа main() { int x; printf("Введите возраст\n"); scanf("%d", &x);


Вариант 2. Программа

main()
{
int x;
printf("Введите возраст\n");
scanf("%d", &x);
if

( x >= 25 && x <= 40 )
printf("Подходит");
else printf("Не подходит");
}

сложное условие

Слайд 56

Сложные условия Сложное условие – это условие, состоящее из нескольких простых

Сложные условия

Сложное условие – это условие, состоящее из нескольких простых условий

(отношений), связанных с помощью логических операций:
! – НЕ (not, отрицание, инверсия)
&& – И (and, логическое умножение, конъюнкция, одновременное выполнение условий)
|| – ИЛИ (or, логическое сложение, дизъюнкция, выполнение хотя бы одного из условий)
Простые условия (отношения)
< <= > >= == !=

равно

не равно

Слайд 57

Сложные условия Порядок выполнения сложных условий: выражения в скобках ! (НЕ,

Сложные условия

Порядок выполнения сложных условий:
выражения в скобках
! (НЕ, отрицание)
<, <=,

>, >=
==, !=
&& (И)
|| (ИЛИ)
Пример:
2 1 6 3 5 4
if ( !(a > b) || c != d && b == a)
{
...
}