Файл: 17. Введение 18. Линейные программы 19. Ветвления 20. Программирование циклических алгоритмов.ppt

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 567

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Что такое программирование?

Направления в программировании

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

Вывод на экран

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

Системы программирования

Системы программирования

Задачи

Пример задачи

Зачем нужны переменные?

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

Работа с переменными

Работа с переменными

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

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

Ввод с подсказкой

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

Программа сложения чисел

Вывод данных с текстом

Вывод данных с текстом (f-строки)

Программа сложения чисел

Ввод двух чисел в одной строке

Задачи

Задачи

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

Деление

Частное и остаток

Частное и остаток

Операторы // и %

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

Форматный вывод

Форматный вывод

Задачи

Задачи

Форматный вывод

Форматный вывод

Научный формат чисел

Математические функции

Задачи

Задачи

Задачи

Датчик случайных чисел

Датчик случайных чисел

Задачи

Задачи

Задачи

Выбор наибольшего из двух чисел

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

Выбор наибольшего из двух чисел-2

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

Примеры

Примеры

Знаки отношений

Вложенные условные операторы

Каскадное ветвление

Каскадное ветвление

Задачи (без функций min и max!)

Задачи

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

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

Хорошее решение (операция «И»)

Примеры

Сложные условия: «ИЛИ»

Ещё пример

Сложные условия: «НЕ»

Простые и сложные условия

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

Задачи

Задачи

Задачи

Логические переменные

Задачи

Задачи

Задачи

Экспертная система

Дерево решений

Программирование экспертной системы

Заглавные и строчные буквы

Виды ошибок

Пример отладки программы

Тестирование

Отладочная печать

Отладочная печать

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

Задачи

Задачи

Задачи

Зачем нужен цикл?

Как работает цикл?

Ещё один вариант

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

Сколько раз выполняется цикл?

Сумма цифр числа

Сумма цифр числа

Сумма цифр числа

Сумма цифр числа

Задачи

Задачи

Алгоритм Евклида

Алгоритм Евклида

Алгоритм Евклида

Модифицированный алгоритм Евклида

Модифицированный алгоритм

В стиле Python

Задачи

Задачи

Обработка потока данных

Обработка потока данных

Задачи

Задачи на циклы (дополнительные)

Задачи

Цикл по переменной

Цикл по переменной

Цикл по переменной

Цикл по переменной

Задачи

Задачи

Что такое массив?

Создание массива

Что неверно?

Перебор элементов массива

Заполнение массива

Вывод массива на экран

Вывод массива на экран (Python)

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

Ввод с клавиатуры (Python)

Задачи

Задачи

Заполнение случайными числами

Задачи-2

Задачи-2

Сумма элементов массива

Сумма элементов массива (Python)

Задачи

Подсчёт элементов по условию

Подсчёт элементов по условию (Python)

Среднее арифметическое

Среднее арифметическое

Среднее арифметическое (Python)

Задачи

Перестановка элементов массива

Реверс массива

Реверс массива

Задачи

Задачи

Поиск максимального элемента (Python)

Задачи (без min и max)

Задачи

Конец фильма

Источники иллюстраций


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

Задачи





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

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





Линейная запись (в одну строку):


a = (c + b - 1) / 2 * d


Операции:


+ –
* – умножение
/ – деление
** – возведение в степень (x2  x**2)





a = (c + b**5*3 - 1) / 2 * d


Приоритет (старшинство):
скобки возведение в степень **
умножение и деление сложение и вычитание


1


2


3


4


5


6


a = (c + b**5*3 - 1) \
/ 2 * d


\


перенос на следующую строку


a = (c + b**5*3
- 1) / 2 * d


перенос внутри скобок разрешён


Деление





Классическое деление:


a = 9; b = 6
x = 3 / 4 # = 0.75
x = a / b # = 1.5
x = -3 / 4 # = -0.75
x = -a / b # = -1.5


a = 9; b = 6
x = 3 // 4 # = 0
x = a // b # = 1
x = -3 // 4 # = -1
x = -a // b # = -2


Целочисленное деление (округление «вниз»!):

Частное и остаток





    // – деление нацело (остаток отбрасывается)
    % – остаток от деления


    t = 175
    m = t // 60 # 2
    s = t % 60 # 55


175 сек = 2 мин 55 сек


Как получить 2 и 55?


?

Частное и остаток





    n = 123
    d = n // 10 # 12
    k = n % 10 # 3


Что получится?


?


При делении на 10 нацело отбрасывается последняя цифра числа.


Остаток от деления на 10 – это последняя цифра числа.

Операторы // и %





    a = 1234
    d = a % 10; print( d )
    a = a // 10 # 123
    d = a % 10; print( d )
    a = a // 10 # 12
    d = a % 10; print( d )
    a = a // 10 # 1
    d = a % 10; print( d )
    a = a // 10 # 0


4


3


2


1

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





    a += b # a = a + b
    a -= b # a = a - b
    a *= b # a = a * b
    a /= b # a = a / b
    a //= b # a = a // b
    a %= b # a = a % b


a += 1


увеличение на 1

Форматный вывод





    a, b = 1, 2
    print( f"{a}+{b}={a+b}" )


1+2=3

Форматный вывод





    a = 1; b = 2; c = 3
    print( a, b, c )


1 2 3


    print( f"{a}{b}{c}" )


123


    print( f"{a}{b:3}{c:5}" )


1 2 3


3


5


количество знаков на вывод числа


Сколько знаков для вывода a?


?


форматная строка

Задачи





«A»: Ввести число, обозначающее количество секунд. Вывести то же самое время в минутах и секундах.
Пример:
Введите число секунд: 175
2 мин. 55 с.
«B»: Ввести число, обозначающее количество секунд. Вывести то же самое время в часах, минутах и секундах.
Пример:
Введите число секунд: 8325


2 ч. 18 мин. 45 с

Задачи





«С»: Занятия в школе начинаются в 8-30. Урок длится 45 минут, перерывы между уроками – 10 минут. Ввести номер урока и вывести время его окончания.
Пример:
Введите номер урока: 6
13-50

Форматный вывод


    print( f"x={x:10.3f}" )





    x=12.345678
    print( f"x={x}" )


x=12.345678


x= 12.346


3


10


всего на число


в дробной части


    print( f"x={x:8.2f}" )


x= 12.34

Форматный вывод





x=12.34


x=12.3


    print( f"x={x:2.2f}" )


    print( f"x={x:0.1f}" )


минимально возможное


x=12.34


    print( f"x={x:.2f}" )


Научный формат чисел





    x=123456789
    print( f"x={x:e}" )


x=1.234568e+008


1,234568 108


    x=0.0000123456789
    print( f"x={x:e}" )


x=1.234568e-005


1,234568 10–5





    x=1.6
    print( int(x) )


    int – целая часть числа


1


    x=-1.2
    print( round(x) )


-1


    round – ближайшее целое число

Математические функции





    import math
    # квадратный корень
    print( math.sqrt(25) )
    r = 50 # радиус окружности
    print( 2*math.pi*r )
    print( math.pi*r**2 )


загрузить модуль math


= подключить математические функции


Что считаем?


?


число 





Большинство вещественных чисел хранятся в памяти компьютера с ошибкой!


!


1/3 = 0,33333…


бесконечно много знаков


    x = 1/2
    y = 1/3
    z = 5/6 # 5/6=1/2+1/3
    print(x+y-z)


-1.110223e-016

Задачи





«A»: Ввести число, обозначающее размер одной фотографии в Мбайтах. Определить, сколько фотографий поместится на флэш-карту объёмом 2 Гбайта.
Пример:
Размер фотографии в Мбайтах: 6.3
Поместится фотографий: 325.

Задачи





«B»: Оцифровка звука выполняется в режиме стерео с частотой дискретизации 44,1 кГц и глубиной кодирования 24 бита. Ввести время записи в минутах и определить, сколько Мбайт нужно выделить для хранения полученного файла (округлить результат в большую сторону).
Пример:
Введите время записи в минутах: 10
Размер файла 152 Мбайт

Задачи





«С»: Разведчики-математики для того, чтобы опознать своих
, используют числовые пароли. Услышав число-пароль, разведчик должен возвести его в квадрат и сказать в ответ первую цифры дробной части полученного числа. Напишите программу, которая по полученному паролю (вещественному числу) вычисляет число-ответ.
Пример:
Введите пароль: 1.92
Ответ: 6
потому что 1,922 = 3,6864…, первая цифра дробной части – 6





Случайные явления
встретил слона – не встретил слона жеребьёвка на соревнованиях лотерея случайная скорость (направление выстрела ) в игре



Случайные числа — это последовательность чисел, в которой невозможно предсказать следующее число, даже зная все предыдущие.





Компьютер неслучаен!


!


Псевдослучайные числа — похожи на случайные, но строятся по формуле.


Xn+1= (a*Xn+b) % c # от 0 до c-1


следующее


предыдущее


Xn+1= (Xn+3) % 10 # от 0 до 9


X = 0


зерно


 3


 6


 9


 2


 5


 8


 0


зацикливание


8


 1


 4


 7

Датчик случайных чисел





Целые числа на отрезке:


from random import randint
K = randint(1, 6) # отрезок [1,6]
L = randint(1, 6) # это уже другое число!


англ. integer – целый
random – случайный


подключить функцию randint из модуля random


Не нужно имя модуля!


!


K = random.randint(1, 6)