Основы алгоритмизации и программирования

Содержание

Слайд 2

Основные типы данных

Основные типы данных

Слайд 3

Составить таблицу символов

#include
void main() {
char ch = ' ';
int i =

Составить таблицу символов #include void main() { char ch = ' ';
0;
do {
printf("%4d--> '%c'\t", ch, ch);
ch = ch + 1;
i = i + 1;
} while (i <= 256);
}

Слайд 4

Основные типы данных (ASCII)

Основные типы данных (ASCII)

Слайд 5

Подсчитать MAX short

void main() {
short i = 1;
long n = 0;
do {
i

Подсчитать MAX short void main() { short i = 1; long n
= i + 1;
n = n + 1;
} while (i > 0);
printf("%li\n", n);
}

Слайд 6

Основные типы данных

Основные типы данных

Слайд 7

Сколько байт в short и long?

void main() {
short i;
long l;
printf("sizeof short =

Сколько байт в short и long? void main() { short i; long
%d\n", sizeof(i));
printf("sizeof long = %d\n", sizeof(l));
}

Слайд 8

Основные типы данных

Основные типы данных

Слайд 9

Основные типы данных

Основные типы данных

Слайд 10

Строка форматирования

Консоль – что из себя представляет.
Знакоместо – что это

Строка форматирования Консоль – что из себя представляет. Знакоместо – что это такое.
такое.

Слайд 11

Поиск корней квадратного уравнения

#define _CRT_SECURE_NO_WARNINGS
#include
#include
void main() {
double a, b, c;
double

Поиск корней квадратного уравнения #define _CRT_SECURE_NO_WARNINGS #include #include void main() { double
D;
double x1, x2;
scanf("%lf", &a);
scanf("%lf", &b);
scanf("%lf", &c);
D = b * b - 4 * a * c;
x1 = (-b + sqrt(D)) / (2 * a);
x2 = (-b - sqrt(D)) / (2 * a);
printf("x1 = %lf", x1);
printf("x2 = %lf", x2);
}

Слайд 13

#include
void main() {
int i = 1;
int a = 1, b =

#include void main() { int i = 1; int a = 1,
2, c = 3, d = 4, e = 5, f = 6;
do {
printf("%d ", i);
if (a < b) {
for (b = d; b < f; b++) {
a = c;
while (a < f) {
d += a;
a++;
}
c = a;
}
e += d;
}

Слайд 14

else {
for (f = e; f > a; f--) {
if (c <

else { for (f = e; f > a; f--) { if
a) {
c = a;
d++;
break;
}
f += a;
}
}
i++;
} while (i <= 5);
printf("%d %d %d", d, e, f);
}

Слайд 15

Цикл for

int j = i; // инициализация счетчика цикла
while (j <= 5)

Цикл for int j = i; // инициализация счетчика цикла while (j
{ // условие продолжения цикла
printf(“%d “, j);
j++; // изменение счетчика цикла
}

Слайд 16

Цикл for (2)

for (int j = i; j <= 5; j++) {

Цикл for (2) for (int j = i; j printf(“%d “, j); }

printf(“%d “, j);
}

Слайд 18

Развилка

if (Условие)
Действие1;
else
Действие2;

Развилка if (Условие) Действие1; else Действие2;

Слайд 19

Найти максимум - полная развилка

if (val1 > val2) {
max_val = val1;
} else

Найти максимум - полная развилка if (val1 > val2) { max_val =
{
max_val = val2;
}

Слайд 20

Усеченная развилка

if (Условие) {
Действие;
}

Усеченная развилка if (Условие) { Действие; }

Слайд 21

Минимум из 3 чисел

void main() {
int val1 = 9;
int val2

Минимум из 3 чисел void main() { int val1 = 9; int
= 10;
int val3 = 6;
int min_val = val1; // берем за минимальный val1
if (val2 < min_val) { // если второе меньше
min_val = val2; // то теперь минимальное val2
}
if (val3 < min_val) { // если третье меньше
min_val = val3; // то теперь минимальное val3
}
printf("min_val = %i", min_val);
}

Слайд 22

Вложенные развилки

if (Условие 1) {
Действие 1
} else {
if (Условие 2) {
Действие 2
}

Вложенные развилки if (Условие 1) { Действие 1 } else { if
else {
Действие 3
}
}
if (Условие 1) {
Действие 1
} else if (Условие 2) {
Действие 2
} else {
Действие 3
}

Слайд 23

Штраф за превышение скорости

Штраф за превышение скорости

Слайд 24

Штраф за превышение скорости – полная развилка

void main() {
int v_max = 40;
int

Штраф за превышение скорости – полная развилка void main() { int v_max
v = 30;
if (v <= v_max) {
printf("All right!");
} else if (v <= v_max + 20) {
printf("No $$$");
} else if (v <= v_max + 40) {
printf("500");
} else if (v <= v_max + 60) {
printf("1000-1500");
} else if (v <= v_max + 80) {
printf("2000-2500");
} else {
printf("5000");
}
}

Слайд 25

Штраф за превышение скорости

Штраф за превышение скорости

Слайд 26

Штраф за превышение скорости – усеченная развилка

void main() {
int v_max =

Штраф за превышение скорости – усеченная развилка void main() { int v_max
40;
int v = 70;
if (v <= v_max) {
printf("Все по правилам!");
}
if ((v > v_max) && (v <= v_max + 20)) {
printf("не штрафуется");
}
if ((v > v_max + 20) && (v <= v_max + 40)) {
printf("500");
}
if ((v > v_max + 40) && (v <= v_max + 60)) {
printf("1000-1500");
}
if ((v > v_max + 60) && (v <= v_max + 80)) {
printf("2000-2500");
}
if (v > v_max + 80) {
printf("5000");
}
}

Слайд 27

Логические операции

if (time < 7.00 || day >= 6) rest();
if (!closed

Логические операции if (time = 6) rest(); if (!closed && money > 1000) eat();
&& money > 1000) eat();

Слайд 28

Цикл с постусловием do while

do {
Действие;
} while (Условие);

Цикл с постусловием do while do { Действие; } while (Условие);

Слайд 29

Пример для цикла do while

Население города увеличивается на 3% каждый год. В

Пример для цикла do while Население города увеличивается на 3% каждый год.
2014 году население города составляло 650 000 человек. Напишите программу, которая выведет на экран предсказываемую численность населения города в каждом году, вплоть до 2040.

Слайд 30

Блок-схема

Блок-схема

Слайд 31

Программа

void main() {
int year = 2014;
long population = 650000;
do

Программа void main() { int year = 2014; long population = 650000;
{
printf("%li inhabitants live in the city in %i\n",
population, year);
population = (population * 103) / 100;
year = year + 1;
} while (year <= 2040);
}

Слайд 32

Программа в работе

Программа в работе

Слайд 33

Задача 1. Ряд натуральных чисел

Вводится N.
Нужно вывести натуральные числа от 1 до

Задача 1. Ряд натуральных чисел Вводится N. Нужно вывести натуральные числа от 1 до N (включительно).
N (включительно).

Слайд 34

Задача 1. Ряд натуральных чисел

Вводится N.
Нужно вывести натуральные числа от 1 до

Задача 1. Ряд натуральных чисел Вводится N. Нужно вывести натуральные числа от
N (включительно).
(Ниже – программа целиком)

Слайд 35

Задача 1. Ряд натуральных чисел – трассировка(0)

Задача 1. Ряд натуральных чисел – трассировка(0)

Слайд 36

Задача 1. Ряд натуральных чисел – трассировка(1)

Задача 1. Ряд натуральных чисел – трассировка(1)

Слайд 37

Задача 1. Ряд натуральных чисел – трассировка(2)

Задача 1. Ряд натуральных чисел – трассировка(2)

Слайд 38

Задача 1. Ряд натуральных чисел – трассировка(3)

Задача 1. Ряд натуральных чисел – трассировка(3)

Слайд 39

Задача 1. Ряд натуральных чисел – трассировка(4)

Задача 1. Ряд натуральных чисел – трассировка(4)

Слайд 40

Задача 1. Ряд натуральных чисел – трассировка(5)

Задача 1. Ряд натуральных чисел – трассировка(5)

Слайд 41

Задача 1. Ряд натуральных чисел – трассировка(6)

Задача 1. Ряд натуральных чисел – трассировка(6)

Слайд 42

Задача 1. Ряд натуральных чисел – трассировка(7)

Задача 1. Ряд натуральных чисел – трассировка(7)

Слайд 43

Задача 1. Ряд натуральных чисел – трассировка(8)

Задача 1. Ряд натуральных чисел – трассировка(8)

Слайд 44

Задача 1. Ряд натуральных чисел – трассировка(9)

Задача 1. Ряд натуральных чисел – трассировка(9)

Слайд 45

Задача 1. Ряд натуральных чисел – трассировка(10)

Задача 1. Ряд натуральных чисел – трассировка(10)

Слайд 46

Задача 1. Ряд натуральных чисел – трассировка(11)

Задача 1. Ряд натуральных чисел – трассировка(11)

Слайд 47

Задача 1. Ряд натуральных чисел – трассировка(12)

Задача 1. Ряд натуральных чисел – трассировка(12)

Слайд 48

Задача 1. Ряд натуральных чисел – трассировка(13)

Задача 1. Ряд натуральных чисел – трассировка(13)

Слайд 49

Задача 1. Ряд натуральных чисел – трассировка(14)

Задача 1. Ряд натуральных чисел – трассировка(14)

Слайд 50

Задача 1. Ряд натуральных чисел – трассировка(15)

Задача 1. Ряд натуральных чисел – трассировка(15)

Слайд 51

Задача 1. Ряд натуральных чисел – трассировка(16)

Задача 1. Ряд натуральных чисел – трассировка(16)

Слайд 52

Задача 1. Ряд натуральных чисел

Вводится N.
Нужно вывести натуральные числа от 1 до

Задача 1. Ряд натуральных чисел Вводится N. Нужно вывести натуральные числа от
N (включительно).
Нарисуйте блок схему к Задаче 1.

Слайд 53

Отладка программы

Можно использовать горячие клавиши:

Отладка программы Можно использовать горячие клавиши:

Слайд 54

Цикл с предусловием while

while (Условие) {
Действие;
}

Цикл с предусловием while while (Условие) { Действие; }

Слайд 55

Пример кода с while

int j = 1; // инициализация счетчика цикла
while (j

Пример кода с while int j = 1; // инициализация счетчика цикла
<= 5) { // условие продолжения цикла
printf(“%d “, j);
j++; // изменение счетчика цикла
}

Слайд 56

Пример кода с while - трассировка

int j = 1; // инициализация счетчика

Пример кода с while - трассировка int j = 1; // инициализация
цикла
while (j <= 5) { // условие продолжения цикла
printf(“%d “, j);
j++; // изменение счетчика цикла
}

Слайд 58

Домашнее задание (желательное)

В режиме пошаговой отладки («дебага») выполнить несколько (3-5) циклических фрагментов

Домашнее задание (желательное) В режиме пошаговой отладки («дебага») выполнить несколько (3-5) циклических
кода.
В режиме пошаговой отладки выполнить код, содержащий развилки.
* В режиме пошаговой отладки выполнить код, содержащий функции
*** В режиме пошаговой отладки выполнить код, содержащий рекурсивные функции