Основы структурного программирования. Их удобно использовать, когда в программе несколько раз решается одна и та же подзадача, но для разных наборов данных.

Презентация:



Advertisements
Похожие презентации
АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ЦИКЛ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ЦИКЛ В TURBO PASCAL Условие Оператор ДаНет Учитель информатики: Коваленко Татьяна Викторовна
Advertisements

Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Тетюшкина Е. Н, учитель информатики и ИКТ МОУ СОШ 1. Основы компьютерной алгебры Элективный курс для 9 класса.
Подпрограмма – это самостоятельная часть программы, реализующая определенный алгоритм.
Функции. Функция- это подпрограмма, которая вычисляет и возвращает некоторое значение. Функции описываются в разделе описаний следующим образом: Function.
Процедуры и функции в Паскале. Рекурсия. Подпрограммы Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.
Рекурсивное программирование Рекурсия – это метод, сводящий общую задачу к некоторым задачам более узкого, простого типа Рекурсивный алгоритм – это алгоритм,
Массивы Урок в 9 классе. Домашняя задача А В = НОД(А,В) НОК (А,В), выражаем из формулы НОК(А,В), получаем В программу Евклид добавляем строчку с этой.
Цикл – это команда исполнителю многократно повторить указанную последовательность действий.
Оператор цикла с предусловием. Оператор цикла с предусловием используется в тех случаях, когда заранее неизвестно число повторений цикла. Форма записи.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ Паскаль НАЧАЛА ПРОГРАММИРОВАНИЯ.
Циклические программы Информатика и ИКТ 9 класс Гимназия 1 г. Новокуйбышевска Учитель информатики: Красакова О.Н.
Циклические конструкции 1. Цикл с предусловием предусловием 2. Цикл с постусловием постусловием 3. Цикл с параметром параметром 4. Вложенные циклы Вложенные.
МЕТОД ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. ПРОЦЕДУРЫ И ФУНКЦИИ Урок 1.
Организация повторений в Паскале. i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
Нacтройка среды Turbo Pascal. Вычислить силу тяжести тела f, если известны его объем V и плотность p. Программа: Program Vaga; {заголовок программы} Const.
Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример.
1 Программирование на языке Паскаль Функции Кулебякин В.В.
Транксрипт:

Основы структурного программирования

Их удобно использовать, когда в программе несколько раз решается одна и та же подзадача, но для разных наборов данных.

Процедуры и функции описываются до начала описания тела основной программы Раздел описания процедуры/функции начинается со слова: procedure имя (параметры); function имя (параметры): тип результата;

procedure box (s: char; w,h: integer); {раздел описания внутренних переменных} begin {тело процедуры} End;

function digits (n:integer): integer; {раздел описания внутренних переменных} begin {тело функции} End;

Когда процедура или функция вызываются, то в скобках вместо формальных параметров, указав фактические параметры (аргументы). Это могут быть либо конкретные значения, либо переменные из основной программы. box ('+', 10, 5); num := digits (num); Вызов процедуры Вызов функции

procedure box (s: char; w,h: integer); var i,j:integer; begin for i := 1 to h do begin for j := 1 to w do write (s); writeln end; writeln end; begin box ('+', 10, 5); box ('r', 20, 3); box ('|', 50, 10); box ('$', 12, 4); readln end.

var m: integer; function digits (n:integer): integer; var i: integer; begin i := 0; while n > 0 do begin n := n div 10; i := i + 1 end; digits := i end; begin write ('Введите положительное число: '); readln (m); m := digits (m); writeln ('Количество разрядов = ', m); readln end.

Написать программу ввода и вывода элементов двумерного массива на экран. Используйте в программе две процедуры: 1 – для ввода элементов двумерного массива, 2 – для вывода элементов двумерного массива

Что будет содержаться в теле основной программы? Запрос размера массива N x M, Вызов процедуры ввода элементов массива TAB_IN, Вызов процедуры вывода элементов массива TAB_OUT. Какие параметры нужно передать первой процедуре для ее работы? Размер массива (N, M) Какие параметры нужно передать второй процедуре для ее работы? Размер массива (N, M)

Описать тело основной программы Разработать первую процедуру TAB_IN Разработать вторую процедуру TAB_OUT

Написать программу, которая из двух целых чисел выбирает наибольшее число. Оформить выбор наибольшего числа в отдельной функции MAX.

Какие параметры нужно передать функции MAX для ее работы Два целых числа Какого типа будет получаться результат вычислений функции MAX ? Целого типа Что будет содержаться в теле основной программы? Запрос ввода двух чисел с клавиатуры, Сохранение в некоторой переменной целого типа результата вычисления функции MAX

Описываем функцию MAX Описываем тело основной программы

Написать программу, которая находит сумму цифр целого числа. Оформить поиск суммы цифр в виде отдельной функции.

Разработаем функцию NUM, определяющую количество цифр в числе (используйте операторы mod и div) Разработаем тело основной программы, в котором будем: Запрашивать ввод числа с клавиатуры, Помещать в некоторую переменную результат вычисления функции NUM Выводить результат на экран

Разработать программу, которая запрашивает ввод двух целых чисел и, если первое число больше второго, меняет значения переменных, в которых содержаться эти числа и выводит их на экран. Примечание: Оформить действия обмена значениями переменных в виде отдельной процедуры.

1. Какие параметры должны быть известны процедуре для выполнения поставленной задачи? 2. Разрабатываем тело процедуры (блок-схему и листинг). 3. Какие действия будут выполняться в основной программе? 4. Разрабатываем тело основной программы.

var k, l: integer; procedure exchange (var a,b: integer); var c: integer; begin if a > b then begin c := a; a := b; b := c; end; end; begin writeln ('Введите два числа: '); readln (k, l); exchange (k, l); writeln ('k = ', k,'; l = ', l); readln end.

Разработать программу вычисления НОД двух чисел a и b. Примечание: Оформить процесс вычисления НОД в виде отдельной функции.

1. Какие параметры должны быть известны функции? 2. Разрабатываем тело функции (блок-схему и листинг). 3. Какие действия будут выполняться в основной программе? 4. Разрабатываем тело основной программы.

var k, l, n: integer; function nod (var a,b: integer): integer; var c: integer; begin repeat if a > b then a := a mod b else b := b mod a; until (a = 0) or (b = 0); nod := a + b; end; begin writeln ('Введите два числа: '); readln (k, l); n := nod (k, l); writeln ('НОД = ', n); readln end.

Дана строка символов. Написать процедуру удаления всех кратных рядом стоящих символов.

Написать программу перевода числа из десятичной системы счисления в двоичную с применением рекурсивной процедуры РЕКУРСИВНАЯ ПРОЦЕДУРА ВЫЗЫВАЕТ САМУ СЕБЯ ИЗ СВОЕГО ЖЕ ТЕЛА

procedure scale (a: integer; b: byte); begin if b > 10 then write ('Основание должно быть меньше 10!') else begin if a > 1 then scale (a div b, b); write (a mod b) end;

var k: integer; s: byte; begin write ('Введите число: '); readln (k); write ('Перевод в систему счисления: '); readln (s); scale (k, s); readln end.

1. Найдем остаток от деления 3430 на 1365: 3430 mod 1365 = Так как этот остаток не равен нулю, повторим то же действие, подставив вместо первого числа второе, а вместо второго – остаток: 1365 mod 700 = Этот остаток также не нуль, поэтому еще одно деление: 700 mod 665 = И еще одно: 665 mod 35 = 0 5. Теперь остаток – нуль, следовательно, НОД равен 35.

function gcd(m, n: integer): integer; var modulo: integer; begin modulo := m mod n; if modulo = 0 then gcd := n else gcd := gcd (n, modulo)

var a, b, answer: integer; begin write('Enter two numbers: '); readln(a, b); answer := gcd(a, b); writeln('Greatest common divisor: ', answer); readln end.