Функции range() в Python




Практическое занятие 3.1.

МЕТОДИКА ПРЕПОДАВАНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1. Логические операторы.

2. Операции целочисленного деления.

3. Составление программ с использованием языков программирования Pascal ABC, C++, Python.

 

Логические операторы

Рассмотрим логические операторы в языках программирования Pascal ABC, C++, Python.

Таблица 1.

Логические операторы

 

Логические операции Pascal ABC C++ Python
И and && and
ИЛИ or || or
НЕ not ! not

 

Таблицы истинности для логических операций.

ОПЕРАЦИЯ НЕ

A истинно когда «не А» ложно.

a a
   
   

ОПЕРАЦИЯ И

«A и B» истинно тогда и только тогда, когда А и B истинны одновременно.

И называется также логическим умножением или конъюнкцией.

a b a∧b
     
     
     
     

ОПЕРАЦИЯ ИЛИ

«A или B» истинно, когда истинно А или B, или оба вместе.

Можно сказать, что «A или B» ложно тогда и только тогда, когда ложны А и В одновременно.

ИЛИ называют логическим сложением или дизъюнкцией.

a b a∨b
     
     
     
     

 

Альтернативные обозначения

· «НЕ» — черта сверху;

· «И» — знак умножения (логическое умножение);

· «ИЛИ» — знак «+» (логическое сложение).

ЗАПОМНИТЕ ПРАВИЛО, КОТОРОЕ ВСЕГДА РАБОТАЕТ!!!

Таблица 2.

Альтернативное правило

1 ∧ 0 = 0 — не очевидно 1 ⋅ 0 = 0 — очевидно!
1 ∨ 0 = 1 — не очевидно 1 + 0 = 1 — очевидно!
1 ∨ 1 = 1 — не очевидно 1 + 1 = 1 — не очевидно, но можно смириться

Итак, таблицы истинности для И и ИЛИ можно не учить, нужно запомнить только одно исключение:

1 + 1 = 1

Для наглядности рассмотрим изображения логических операций в виде операций над множествами


А*В это логическая операция А И В, а А+В это А ИЛИ В.

 

Таблица 3

Законы де Моргана

Запись с использованием частицы НЕ Запись с использованием унарного минуса Запись с использованием черты сверху
  НЕ(НЕ(А))=А   (А)=А НЕ(А) = А
НЕ (A И B) = (НЕ A) ИЛИ (НЕ B)   (A∧B) =А V B   A ИЛИB =A ИB
НЕ (A ИЛИ B) = (НЕ A) И (НЕ B)   (AVB)= =А ∧ B   A ИB =A ИЛИB

 

 

Операции целочисленного деления

Рассмотрим операции целочисленного деления в языках программирования Pascal ABC, C++, Python.

Таблица 4.

Операции целочисленного деления

 

Операции целочисленного деления Pascal ABC C++ Python
остаток от деления mod % %
целая часть от деления div / //

 

Операции целочисленного деления div, mod предназначены только для работы с целыми числами. Операция div определяет целую часть от деления, операция mod определяет остаток от деления.

Пример:

15 div 2 = 7

15 mod 2 = 1

Операции целочисленного деления div, mod играют большую роль при составлении программ.

 

Рассмотрим простые задачи, в которых используются div, mod

Пример № 1.

n школьников делят k яблок поровну, неделящийся остаток остаётся в корзинке. Сколько яблок достанется каждому школьнику?

Входные данные

Два положительных целых числа n и k, не превышающие 1500 - редко в школе бывает больше учеников, да и много яблок тоже кушать вредно...

Выходные данные

Вывести количество яблок, которое достанется каждому школьнику.

program pr1;

var r,k,n:integer;

begin

readln(n,k);

r:=k div n;

writeln(r);

end.

Пример № 2.

n школьников делят k яблок поровну, неделящийся остаток остаётся в корзинке. Сколько яблок останется в корзинке?

Входные данные

Два положительных целых числа n и k, не больших 1500 - редко в школе бывает больше учеников, да и где найти такую корзинку?

Выходные данные

Вывести количество яблок, которое останется в корзинке.

 

program pr1;

var r,k,n:integer;

begin

readln(n,k);

r:=k mod n;

writeln(r);

end.

 

Пример № 3.

Найти сумму цифр натурального числа N, где ( 1<=N<=2147483647 ).

Замечание: данная задача является базовой для решения задания ЕГЭ № 24. Каждый школьник должен понимать, как составляется алгоритм решения с использованием операций DIV, MOD.

Решение.

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

S:=0

 

 

Условие Digit S N
  n>0 753>0 Digit:= n mod 10 Digit= 753 mod 10=3 S:=S+ Digit S:=0+3 N:=N div 10 N=753 div 10 =75
  75>0 Digit=75 mod 10=5 S:=3+5=8 N=75 div 10 =7
  7>0 Digit=7 mod 10=7 S:=8+7=15 N=7 div 10 =0
  0>0   Условие не выполняется, выход из цикла

 

 

program pr2; var digit,n,s:longint; begin writeln ('input n'); readln (n); s:=0; while n>0 do begin digit:= n mod 10 S:=S+ digit; n:=n div 10; end; writeln('summa=',s); end.

 

 

3. Составление программ с использованием языков программирования Pascal ABC, C++, Python.

 

Рассмотрим пример из основного государственного экзамена для 9 класса, аналогичный заданию № 20.1.

Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 3 и оканчивающихся на 2. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратно 3 и оканчивающиеся на 2. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — количество чисел, кратных 3 и оканчивающихся на 2.

 

Пример работы программы:

 

Входные данные Выходные данные
   

 

Решение на языке программирования Pascal ABC

Program ex1;

var n,i,k,x:integer;

begin

readln(n);

k:=0;

for i:=1 to n do

begin

readln(x);

if (x mod 3= 0) and (x mod 10 =2) then k:=k+1;

end;

writeln(k);

end.

Решение на языке программирования C++

 

#include <iostream>

using namespace std;

 

int main() {

int i,n,x,count; /* описание переменных */

count = 0;

cin >> n; /*ввод значения переменной n */

for (i=1; i<=n; i++){

cin >> x; /*ввод значения переменной x */

if (x%3 == 0 && x%10 == 2)

count++;

}

cout << count << endl; /*вывод значения переменной count */

return 0; /* endl означает переход на новую строку */

}

Решение на языке программирования Python

count = 0

n = int(input()) # описание и ввод значения переменной n, тип int

for i in range (1,n+1):

x = int(input()) # описание и ввод значения переменной x, тип int

if (x % 3 == 0) and (x % 10 == 2):

count+=1

print(count) # вывод значения переменной count

 

В языке программирования Python нет операторных скобок (begin,end) для обозначения отдельных блоков кода. Вместо них в Python используются: и отступы. Количество пробелов в отступах равняется четырем пробелам.

Функции range() в Python

Range(англ.- диапазон)

range() является универсальной функцией Python для создания списков (list) содержащих арифметическую прогрессию. Чаще всего она используется в циклах for. Функция range() может принимать от одного до трех агрументов, при этом аргументами должны быть целые числа (int).

range(старт, стоп, шаг) – так выглядит стандартный вызов функции range() в Python.

По умолчанию старт равняется нулю, шаг единице. Возвращает список целых чисел в форме [старт, старт + шаг, старт + шаг*2...]. Если шаг положительное число, последним элементом списка будет наибольшее старт + i * шаг меньшее числа стоп. Если шаг отрицательное число, то последний элемент будет наименьшее старт + i * шаг большее числа стоп. Шаг не должен равняться нулю, иначе возникнет ValueError.

 

Примеры использований функции range() в Python:

 

  Пример 1. range(7) [0, 1, 2, 3, 4, 5, 6]   Пример 2. range(1,8) [1, 2, 3, 4, 5, 6,7]   Пример 3. range(0,20,5) [0, 5, 10, 15] range (0,10,4) (0,4,8)

Запись k+=i означает k:=k+i

Пример.

k=0

For i in range (0,10,4):

k+=i

 

Рассмотрим следующие примеры из основного государственного экзамена для 9 класса, аналогичный заданию № 20.1.

Пример № 1.

1. Напишите программу, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет т сумму всех чисел, крат­ных 6 и окан­чи­ва­ю­щих­ся на 4. Про­грам­ма по­лу­ча­ет на вход на­ту­раль­ные числа, ко­ли­че­ство введённых чисел неизвестно, по­сле­до­ва­тель­ность чисел за­кан­чи­ва­ет­ся чис­лом 0 (0 — признак окон­ча­ния ввода, не вхо­дит в последовательность). Ко­ли­че­ство чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000. Про­грам­ма долж­на вы­ве­сти одно число: сумму всех чисел, крат­ных 6 и окан­чи­ва­ю­щих­ся на 4.

Входные данные Выходные данные
   

 

Решение.

 

Pascal ABC C++ Python
program pr1; var sum,x:integer; begin readln(x); sum:=0; while x<>0 do begin if (x mod 6 = 0) and (x mod 10 =4) then sum:=sum+x; readln(x); end; writeln(sum); end.   #include <iostream> using namespace std;   int main() { int sum,x; /* описание переменных */ sum = 0; cin >> x; /*ввод значения переменной x */ while (x!=0) { if (x%6 == 0 && x%10 == 4) sum+=x; cin >> x; /*ввод значения переменной x */ } cout << sum << endl; /*вывод значения переменной sum */ return 0; /* endl означает переход на новую строку */ }   x = int(input()) sum = 0 while not (x == 0): if (x % 6 == 0) and (x % 10 == 4): sum += x x = int(input()) print (sum)

 

 

Пример № 2.

 

На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество нечётных чисел в исходной последовательности и максимальное нечётное число. Если нечётных чисел нет, требуется на экран вывести «NO». Известно, что вводимые числа не превышают 1000.

program ex1;

var n,i,a,max,k: integer;

begin

k:=0;

max:= 0;

for i:= 1 to 4 do

begin

readln(a);

if (a mod 2 > 0) then

begin

k:=k+1;

if (a > max) then max:= a;

end;

end;

if k=0 then writeln ('NO') else writeln ('k=',k);

writeln ('max=', max);

end.

Вопросы для самоконтроля

1. Логические операторы в языках программирования Pascal ABC, C++, Python.

2. Операции целочисленного деления в языках программирования Pascal ABC, C++, Python.

3. Описание переменных в языках программирования Pascal ABC, C++, Python.

Основная литература

1. Электронный учебник для изучения информатики и ИКТ в 8-9 классах к учебно-методическому комплекту И.Г. Семакин и др. авторов. Тематический каталог ЦОР. – Режим доступа: https://www.krippo.ru/informatika/116

2. Методика подготовки обучающихся к ОГЭ по информатике и ИКТ. Методические рекомендации / Т.В. Киндра – Симферополь: ИП Хотеева Л.В., 2018. – 64 с. – Режим доступа: https://krippo.ru/informatika/120

3. Информатика. Углубленный уровень: учебник для 10 класса: в 2 ч. Ч.1/ И.Г. Семакин, Т.Ю. Шеина, Л.В. Шестакова.- М.: БИНОМ. Лаборатория знаний, 2014.-184 с. – Режим доступа: https://lbz.ru/books/230/8194/

Дополнительная литература

1. Информатика. Учебник для 9 класса. И. Г. Семакин, Л. А. Залогова,

С. В. Русаков, Л. В. Шестакова.- М.: БИНОМ. Лаборатория знаний, 2014.-125 с.

2. Информатика. Углубленный уровень: учебник для 10 класса: в 2 ч. Ч.2/ И.Г. Семакин, Т.Ю. Шеина, Л.В. Шестакова.- М.: БИНОМ. Лаборатория знаний, 2014.-232 с.

3. Кузнецов А.А. Основы общей теории и методики обучения информатике. Учебное пособие – М.: БИНОМ. Лаборатория знаний, 2010.– 207 с.

Электронные образовательные ресурсы

1. 1. Онлайновая система программирования, компиляторы для любого языка программирования. – Электронный ресурс. – Режим доступа: https://ideone.com/

2. Лабораторные работы и задачи по программированию, ЕГЭ по информатике и ИКТ. – Электронный ресурс. – Режим доступа: https://labs.org.ru/

3. Дистанционная подготовка по информатике. – Электронный ресурс. – Режим доступа: https://informatics.mccme.ru

4. Школа программиста. – Электронный ресурс. – Режим доступа: https://acmp.ru

5. ФГБНУ «Федеральный институт педагогических измерений». – Электронный ресурс. – Режим доступа: https://fipi.ru/

6. «РЕШУ ОГЭ, разбор заданий, тренировочные online-тесты по информатике». – Электронный ресурс. – Режим доступа: https://inf.reshuoge.ru

7. ГБОУ ДПО РК КРИППО. – Электронный ресурс. – Режим доступа: www.krippo.ru

8. Методические рекомендации по подготовке обучающихся к ОГЭ по информатике и ИКТ. – Электронный ресурс. – Режим доступа: https://www.krippo.ru/files/Informatika/metod1.pdf

9. Персональный сайт учителя информатики К.Ю. Полякова. – Электронный ресурс. – Режим доступа: https://kpolyakov.spb.ru

Практическое задание

Составить программы с использованием языков программирования Pascal ABC, C++, Python для следующих задач.

 

1. Напишите программу, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет сумму чисел, крат­ных 6. Про­грам­ма по­лу­ча­ет на вход ко­ли­че­ство чисел в последовательности, а затем сами числа. В по­сле­до­ва­тель­но­сти все­гда име­ет­ся число, крат­ное 6. Ко­ли­че­ство чисел не пре­вы­ша­ет 100. Введённые числа не пре­вы­ша­ют 300. Про­грам­ма долж­на вы­ве­сти одно число — сумму чисел, крат­ных 6.

2. На­пи­ши­те программу, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет мак­си­маль­ное число, крат­ное 5. Про­грам­ма по­лу­ча­ет на вход ко­ли­че­ство чисел в последовательности, а затем сами числа. В по­сле­до­ва­тель­но­сти все­гда име­ет­ся число, крат­ное 5. Ко­ли­че­ство чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000. Про­грам­ма долж­на вы­ве­сти одно число — максимальное число, крат­ное 5.

3. Напишите программу, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет ко­ли­че­ство чисел, окан­чи­ва­ю­щих­ся на 6. Про­грам­ма по­лу­ча­ет на вход ко­ли­че­ство чисел в последовательности, а затем сами числа. В по­сле­до­ва­тель­но­сти все­гда име­ет­ся число, окан­чи­ва­ю­ще­е­ся на 6. Ко­ли­че­ство чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000. Про­грам­ма долж­на вы­ве­сти одно число — ко­ли­че­ство чисел, окан­чи­ва­ю­щих­ся на 6.

 

4. Напишите программу, ко­то­рая в по­сле­до­ва­тель­но­сти целых чисел опре­де­ля­ет ко­ли­че­ство нечётных чисел, крат­ных 3. Про­грам­ма по­лу­ча­ет на вход целые числа, ко­ли­че­ство введённых чисел неизвестно, по­сле­до­ва­тель­ность чисел за­кан­чи­ва­ет­ся чис­лом 0 (0 — признак окон­ча­ния ввода, не вхо­дит в последовательность). Ко­ли­че­ство чисел не пре­вы­ша­ет 1000. Введённые числа по мо­ду­лю не пре­вы­ша­ют 30 000. Про­грам­ма долж­на вы­ве­сти два числа: длину по­сле­до­ва­тель­но­сти (завершающий 0 не учитывается) и ко­ли­че­ство нечётных чисел, крат­ных 3.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-15 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: