Программирование «сверху вниз»

Содержание

Слайд 2

Цели урока:

познакомить учащихся с методикой программирования "сверху вниз",
научить создавать собственные подпрограммы,

Цели урока: познакомить учащихся с методикой программирования "сверху вниз", научить создавать собственные

воспитать культуру конструктивного мышления.

Слайд 3

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

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

Процедуры и функции

Слайд 4

Арифметические :
abs(x); cos(x); sqrt(x); и др.
Скалярные:
dec(x,n); inc(x,n);
pred(s); suss(s); odd(x);
Функции и процедуры преобразования

Арифметические : abs(x); cos(x); sqrt(x); и др. Скалярные: dec(x,n); inc(x,n); pred(s); suss(s);
типов:
chr(i); round(x); trunc(x);
val(s,x,code); str(n,s);

Стандартные процедуры и функции

Слайд 5

Встроенные процедуры и функции выделены в группы, которые размещаются в отдельных модулях.
Модуль

Встроенные процедуры и функции выделены в группы, которые размещаются в отдельных модулях.
имеет имя.
Подключается через слово Uses.
По умолчанию подключается модуль System.

Встроенные процедуры и функции

Слайд 6

Числа Армстронга

1, 2, …, 9
153=13+53+33=1+125+27
370=33+73+03=27+343
371?

Числа Армстронга 1, 2, …, 9 153=13+53+33=1+125+27 370=33+73+03=27+343 371?

Слайд 7

Фрагмент программы нахождения n-ой (n>0) степени натурального числа а (аn)

st:=1;
for

Фрагмент программы нахождения n-ой (n>0) степени натурального числа а (аn) st:=1; for
i:=1 to n do st:=st*a;

Слайд 8

Фрагмент программы нахождения количества цифр k натурального числа n (n>0)

k:=0;
while

Фрагмент программы нахождения количества цифр k натурального числа n (n>0) k:=0; while
n>0 do begin
inc(k);
n:=n div10; {число n без последней цифры}
end;

Слайд 9

Фрагмент программы нахождения суммы цифр s натурального числа n

s:=0;
while n>0 do

Фрагмент программы нахождения суммы цифр s натурального числа n s:=0; while n>0
begin
s:=s+n mod10; {n mod 10 – младшая цифра числа}
n:=n div10;
end;

Слайд 10

Методика программирования "сверху вниз"

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

Методика программирования "сверху вниз" Задача разбивается на несколько более простых, которые оформляются в виде подпрограмм.
виде подпрограмм.

Слайд 11

Пользовательские процедуры и функции

Подпрограммы – это процедуры и функции для выполнения часто

Пользовательские процедуры и функции Подпрограммы – это процедуры и функции для выполнения
повторяющихся операций с данными, которые могут меняться.
В Pascal имеется два вида подпрограмм — процедуры и функции.

Слайд 12

Описание подпрограммы

procedure Имя_процедуры(параметры);
begin
 Код процедуры;
end;

function Имя_функции(параметры):тип_результата;
begin
 Код функции;
 Имя_функции:=результат;
end;

Описание подпрограммы procedure Имя_процедуры(параметры); begin Код процедуры; end; function Имя_функции(параметры):тип_результата; begin Код функции; Имя_функции:=результат; end;

Слайд 13

Параметры

Формальные (параметры -переменные) и фактические.
Количество, типы и порядок формальных и фактических параметров

Параметры Формальные (параметры -переменные) и фактические. Количество, типы и порядок формальных и
должны совпадать.
Локальные и глобальные

Слайд 14

Процедура вычисления степени натурального числа аn, где 0<=а<=9, 1<=n<=9

procedure stepen(a,n:byte; var st:longint);
var

Процедура вычисления степени натурального числа аn, где 0 procedure stepen(a,n:byte; var st:longint);
i:byte;
begin
st:=1;
for i:=1 to n do st:=st*a;
end;

Слайд 15

Функция вычисления степени натурального числа аn, где 0<=а<=9, 1<=n<=9

function stepen (a,n:byte):longint;
var i,st:byte;
begin
 

Функция вычисления степени натурального числа аn, где 0 function stepen (a,n:byte):longint; var
st:=1;
for i:=1 to n do st:=st*a;
 stepen:=st;
end;

Слайд 16

Процедура вычисления количества цифр k натурального числа n (0

procedure kol(n:integer; var k:byte);
var

Процедура вычисления количества цифр k натурального числа n (0 procedure kol(n:integer; var
i:byte;
begin
k:=0;
while n>0 do begin
inc(k); n:=n div10;
end;
end;

Слайд 17

Функция вычисления количества цифр k натурального числа n (0

function kol (n:integer):byte;
var k:byte;
begin

Функция вычисления количества цифр k натурального числа n (0 function kol (n:integer):byte;
k:=0;
while n>0 do begin
inc(k); n:=n div10;
end;
kol:=k;
end;

Слайд 18

Процедура вычисления суммы цифр натурального числа n (0

procedure sum(n:integer; var s:byte);
var x,k:byte;
begin

Процедура вычисления суммы цифр натурального числа n (0 procedure sum(n:integer; var s:byte);
s:=0;
while n>0 do begin
s:=s+ n mod 10;
n:=n div10;end;
end;

Слайд 19

Функция вычисления суммы цифр натурального числа n (0

function sum(n:integer):byte;
var k:byte;
begin s:=0;
while

Функция вычисления суммы цифр натурального числа n (0 function sum(n:integer):byte; var k:byte;
n>0 do begin
s:=s+ n mod 10;
n:=n div10; end;
sum:=s; end;

Слайд 20

Вызов подпрограммы


Процедура и функция вызываются по имени, в круглых скобках записываются

Вызов подпрограммы Процедура и функция вызываются по имени, в круглых скобках записываются
фактические параметры.
Имя (Список фактических параметров)
Количество, типы и порядок формальных и фактических параметров должны совпадать.

Слайд 21

(ПРОЦЕДУРЫ)

Определение числа Армстронга

(ПРОЦЕДУРЫ) Определение числа Армстронга

Слайд 22

program p1;
var n,n1:integer; k:byte;x,s:longint;
procedure stepen(a,n:byte; var st: longint);
var i:byte;
begin
st:=1; for i:=1

program p1; var n,n1:integer; k:byte;x,s:longint; procedure stepen(a,n:byte; var st: longint); var i:byte;
to n do st:=st*a;
end;
procedure kol(n:integer; var k:byte);
var i:byte;
begin
k:=0;
while n>0 do begin
inc(k);
n:=n div 10; end;
end;

Слайд 23

begin readln(n); {вводим натуральное число}
s:=0; k:=0; {s-для хранения суммы степеней цифр

begin readln(n); {вводим натуральное число} s:=0; k:=0; {s-для хранения суммы степеней цифр
числа, k-для хранения количества цифр числа}
n1:=n; {n1 для хранения введенного числа}
kol(n,k);
n:=n1; {в n восстановим введенное число}
s:=0;
while n>0 do begin
stepen(n mod 10,k,x); {x- для хранения степени младшей цифры числа}
s:=s+ x; n:=n div 10;
end;
if s=n1 then writeln(‘число ’, n1, ' явл. числ. Армстронга')
else writeln(‘число ’, n1, ' не явл. числ. Армстронга');
end.

Слайд 24

(ФУНКЦИИ)

Определение числа Армстронга

(ФУНКЦИИ) Определение числа Армстронга

Слайд 25

program p2;
var n,n1:integer; k:byte; s:longint;
function stepen (a,n:byte):longint;
var i:byte; st:longint;
begin st:=1;
for

program p2; var n,n1:integer; k:byte; s:longint; function stepen (a,n:byte):longint; var i:byte; st:longint;
i:=1 to n do st:=st*a;
  stepen:=st; end;
function kol (n:integer):byte;
var k:byte;
begin
  k:=0;
while n>0 do begin
inc(k); n:=n div 10; end;
kol:=k; end;

Слайд 26

begin
readln(n);
n1:=n;
k:=kol(n);
s:=0;
n:=n1;
while n>0 do begin
s:=s+stepen(n mod 10,k);
n:=n div 10;
end;
if s=n1 then writeln(‘число

begin readln(n); n1:=n; k:=kol(n); s:=0; n:=n1; while n>0 do begin s:=s+stepen(n mod
’,n1, ' явл. числ. Армстронга')
else writeln(‘число ’,n1, ' не явл. числ. Армстронга')
end.

Слайд 27

(ФУНКЦИИ)

Вывод чисел Армстронга из диапазона от a до b(0<=a

(ФУНКЦИИ) Вывод чисел Армстронга из диапазона от a до b(0

Слайд 28

program p4;
var a,b,i:integer; k:byte;s:longint;
function stepen (a,n:byte):longint;
var i:byte; st:longint;
begin  st:=1;
for i:=1 to

program p4; var a,b,i:integer; k:byte;s:longint; function stepen (a,n:byte):longint; var i:byte; st:longint; begin
n do st:=st*a;
 stepen:=st; end;
function kol (n:integer):byte;
var k:byte;
begin  k:=0;
while n>0 do begin
inc(k); n:=n div 10;
end;
kol:=k; end;

Слайд 29

function sum(n:integer; k:byte):longint;
var s:longint;
begin
s:=0;
while n>0 do begin
s:=s+ stepen(n mod 10,k);
n:=n div

function sum(n:integer; k:byte):longint; var s:longint; begin s:=0; while n>0 do begin s:=s+
10;
end;
sum:=s;
end;

Слайд 30

begin
readln(a,b);
for i:=a to b do begin
n:=i;
k:=kol(n);
n:=i;
s:=sum(n,k);
if s=i then writeln(i)
end;
end.

begin readln(a,b); for i:=a to b do begin n:=i; k:=kol(n); n:=i; s:=sum(n,k);

Слайд 31

Домашнее задание

а) Найти пять наибольших чисел Армстронга из диапазона от a до

Домашнее задание а) Найти пять наибольших чисел Армстронга из диапазона от a
b(0б) Найдите пять наибольших чисел Армстронга, состоящих не более чем из n цифр. Вывести их по возрастанию.
Пример input.txt output.txt
4 371 407 1634 8208 9474
1 5 6 7 8 9

Слайд 32

Хорошая программа должна содержать главным образом обращения к процедурам и функциям, и

Хорошая программа должна содержать главным образом обращения к процедурам и функциям, и
для этого рекомендую:

- выделять в процедуру (функцию) небольшой логически завершенный фрагмент алгоритма;
- называть процедуры (функции) мнемоническими именами;
- использовать функцию, если алгоритм должен вычислить одно скалярное значение.

Имя файла: Программирование-«сверху-вниз».pptx
Количество просмотров: 216
Количество скачиваний: 0