СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Урок №8. Алгоритмическая структура «выбор».

Категория: Информатика

Нажмите, чтобы узнать подробности

Урок №8.  Алгоритмическая структура «выбор».

Цели урока:

  • помочь учащимся получить представление об алгоритмической структуре «выбор».  ;
  • воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости.
  • развитие познавательных интересов, навыков работы на компьютере, самоконтроля, умения конспектировать.

Просмотр содержимого документа
«Урок №8. Алгоритмическая структура «выбор».»

Урок №9. Алгоритмическая структура «цикл».

Цели урока:

  • помочь учащимся получить практическое представление об алгоритмической структуре «цикл». ;

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

  • развитие познавательных интересов, навыков работы на компьютере, самоконтроля, умения конспектировать.

Оборудование:

доска, компьютер, компьютерная презентация.

План урока:

1. Орг. момент. (1 мин)

2. Проверка знаний. (5 мин)

3. Теоретическая часть. (10 мин)

4. Практическая часть. (20 мин)

5. Д/з (2 мин)

6. Вопросы учеников. (5 мин)

7. Итог урока. (2 мин)

Ход урока:

1. Орг. момент.

Приветствие, проверка присутствующих. Объяснение хода урока.

2. Проверка знаний.

3. Теоретическая часть.

 

3. Базовая структура  "цикл". Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:

Школьный алгоритмический язык

Язык блок-схем

Цикл типа пока.
Предписывает выполнять тело цикла до тех пор,
пока выполняется условие, записанное после слова пока.

нц пока условие

  тело цикла

  (последовательность действий)

кц

Цикл типа для.
Предписывает выполнять тело цикла для всех значений
      некоторой переменной (параметра цикла) в заданном диапазоне.     

нц для i от i1 до i2

  тело цикла

  (последовательность действий)

кц


Примеры структуры цикл


       Школьный алгоритмический язык      

           Язык блок-схем            

нц пока i

  S := S+A[i]

  i := i+1

кц

нц для i от 1 до 5

  X[i] := i*i*i

  Y[i] := X[i]/2

кц

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

Пример. Составить алгоритм вычисления бесконечной суммы
 


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

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

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

Решая эту задачу "в лоб" путем вычисления на каждом  i-ом шаге частичной суммы
 

S:=S + ((-1)**(i-1)) * (x**i) / i ,


мы получим очень неэффективный алгоритм, требующий выполнения большого числа операций. Гораздо лучше организовать вычисления следующим образом: если обозначить числитель какого-либо слагаемого буквой  р , то у следующего слагаемого числитель будет равен  —р*х   (знак минус обеспечивает чередование знаков слагаемых), а само слагаемое  m  будет равно  p/i , где  i  — номер слагаемого.

Сравните эти два подхода по числу операций.
 

Алгоритм на школьном АЯ

    Блок-схема алгоритма    

алг Сумма (арг вещ x, Eps, рез вещ S)

  дано | 0

  надо | S = x - x**2/2 + x**3/3 - ...

нач цел i, вещ m, p

  ввод x, Eps

  S := 0; i := 1 | начальные значения

  m := 1; p := -1

  нц пока abs(m) Eps

  p := -p*x | p - числитель

          | очередного слагаемого

  m := p/i  | m - очередное слагаемое

  S := S + m  | S - частичная сумма

  i := i + 1  | i - номер

          | очередного слагаемого

  кц

  вывод S

кон

Алгоритм, в состав которого входит итерационный цикл, называется итеpационным алгоpитмом. Итерационные алгоритмы используются при реализации итерационных численных методов.

В итерационных алгоритмах необходимо обеспечить обязательное достижение условия выхода из цикла (сходимость итерационного процесса). В противном случае произойдет "зацикливание" алгоритма, т.е. не будет выполняться основное свойство алгоритма — результативность.

7.11. Что такое вложенные циклы?

Возможны случаи, когда внутри тела цикла необходимо повторять некоторую последовательность операторов, т. е. организовать внутренний цикл. Такая структура получила название цикла в цикле или вложенных циклов. Глубина вложения циклов (то есть количество вложенных друг в друга циклов) может быть различной.

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

Пример вложенных циклов   для  

Вычислить сумму элементов заданной матрицы А(5,3).
 

            Матрица А            
 

S := 0;

нц для i от 1 до 5

  нц для j от 1 до 3

    S:=S+A[i,j]

  кц

кц

Пример вложенных циклов   пока  

Вычислить произведение тех элементов заданной матрицы A(10,10), которые расположены на пересечении четных строк и четных столбцов.
 

i:=2; P:=1

нц пока i

  j:=2

  нц пока j

    P:=P*A[i,j]

    j:=j+2

  кц

  i:=i+2

кц


ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ

Циклические конструкции используются в тех случаях, когда необходимо повторять какие-либо действия. Различают два вида циклов: с заданным количеством шагов и циклы, в которых количество шагов заранее неизвестно, а цикл завершается при выполнении условия.

1. ЦИКЛ С ПРЕДУСЛОВИЕМ или цикл "ПОКА".


Сначала проверяется условие и тело цикла выполняется ПОКА УСЛОВИЕ ИСТИННО,

если условие становится ЛОЖНЫМ, то происходит выход из цикла.

Реализуется этот цикл инструкцией:

WHILE условие DO тело цикла

while - (вайл) - пока, do - (ду) – делать (выполнять).

В тело цикла входит только один оператор! Если нужно объединить в тело цикла несколько операторов, то применяются операторные скобки begin-end.

Условие может быть простым или сложным, если применить слова: NOT, AND, OR.


ПРИМЕРЫ ПРОСТЕЙШИХ ЦИКЛИЧЕСКИХ ПРОЦЕССОВ.


Пример 1. Вывести 20 одинаковых символов на экран.


Program Simwol; Uses crt;

var i,h,n: integer;

Begin {Действительно ли на экране 20 символов?}

clrscr; {пронумеруем символы:}

i:=1; h:=1; n:=20;

while i

begin begin

write('* '); writeln(i,'- * ');

i:=i+h; i:=i+h;

end; end;

readkey;

End.


Пример 2. Вывести на экран Пример 3. Вывести на экран

числа от 1 до 20. числа от 20 до 1.


Program Ch; Uses crt; Program Ch; Uses crt;

var i,h,n: integer; var i,h,n: integer;

Begin Begin

Clrscr; clrscr;

i:=1; h:=1; n:=20; i:=20; h:=-1; n:=1;

while i=n do

begin begin

write(i,' '); write(i,' ');

i:=i+h; i:=i+h;

end; end;

readkey; readkey;

End. End.


Пример 4. Вывести на экран числа, оканчивающиеся на 7 на интервале от -100 до 100.

Program Ch; Uses crt;

var i,h,n: integer;

Begin

clrscr;

i:=-100; h:=1; n:=100;

while i

begin

if i mod 10=7 then write(i,' ');

i:=i+h;

end;

readkey;

End.


нечетные: if odd(i) then write(i,' ');

четные: if not(odd(i)) then write(i,' ');

делящиеся на 7: if i mod 7=0 then write(i,' ')

нечетные и делящиеся на 7: if (odd(i)) and (i mod 7=0) then write(i,' ');


Пример5. Найти сумму ряда: 1, 2, ..20.

Тип переменной S может быть integer, если сумма чисел не более 32767.

Program Summa; Uses crt;

var i,n,h,s: integer;

Begin

clrscr;

i:=1; n:=20; h:=1; s:=0; { s:=0 -обнуление суммы }

while i

begin

s:=s+i; { процесс суммирования }

i:=i+h;

end;

write('Сумма чисел натурального ряда от 1 до 20 равна ',s);

readkey;

End.

Пример 6. Найти сумму ряда: 0.1, 0.3, 0.5, .. , 32.5

Program Summa; Uses crt; { s - сумма }

var x,h,n,s: real; { h - шаг }

Begin { x – начальное значение параметра цикла}

ClrScr; { n - конечное значение параметра цикла.}

s:=0; x:=0.1; h:=0.2; n:=32.5;

while (x

begin

s:=s+x; { -суммирование очередного элемента }

x:=x+h; { -изменение параметра цикла на шаг }

end;

writeln('Сумма ряда: 0.1, 0.3,.., 32.5 S=',s); readkey;

End.


Пример 7. Вывести на экран таблицу функции Y=sin(х),

где х изменяется от 10 до 90 с шагом 5 градусов.


Program Tabl; Uses crt;

var x, h, n, y: real;

Begin

ClrScr; writeln(' Таблица функции y=sin(х)');

x:=10; h:=5; n:=90;

while x

begin

y:=sin(x*pi/180);

writeln('X=',x,' Y=',y);

x:=x+h;

end;

readkey;

End.

ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ (продолжение)


2. ЦИКЛ С ПОСТУСЛОВИЕМ или ЦИКЛ "ДО"

Сначала выполняется тело цикла, затем проверяется условие. Выход из цикла

осуществляется, когда УСЛОВИЕ СТАНЕТ ИСТИННЫМ , если условие ЛОЖНО, то

цикл повторяется.

REPEAT repeat - (рипид) - повторять

тело цикла until - (антил) - ДО тех пор пока

UNTIL условие;

Проверка условия производится после выполнения тела цикла, что делает

применение цикла "ПОКА" более предпочтительным, когда требуется пропустить

цикл вообще.

Вычислить для любого Х, с проверкой корректности ввода.


Program Func; Uses crt;

var x,y: real;

Begin

repeat

ClrScr;

write('X='); readln(x);

until (x0);

y:=1/x;

writeln('x=',x,' y=',y);

readkey;

End.

ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ (продолжение)


3. ЦИКЛ С ЗАДАННЫМ ПАРАМЕТРОМ (ДЛЯ)

Применяется, если известно сколько раз требуется выполнить тело цикла.

FOR := TO DO

[ DOWNTO ]

for - (фо) - для; to - (ту) - до; { шаг=1 };

downto - (даунту) - вниз до; { шаг=-1 }; do - (ду) - выполнить;

параметр цикла - переменная любого скалярного типа, кроме вещественного

(управляющая переменная) ;

выражение1 - скалярное выражение - начальное значение параметра цикла;

выражение2 - скалярное выражение - конечное значение параметра цикла;

оператор - тело цикла;

Напечатать числа от 1 до 20.

Program Chisla; Uses crt;

var i:integer; { управляющая (параметр) цикла }

Begin

clrscr;

for i:=1 to 20 do write(i,' '); { 1 -начальное значение параметра }

End. { 20 -конечное значение параметра }

{ write(i,' ') -тело цикла }

После каждого выполнения тела цикла параметр i увеличивается на 1.


Напечатать числа от 20 до 1.

Program Chisla; Uses crt;

var i:integer;

Begin

clrscr;

for i:=20 downto 1 do write(i,' ')

End.

После каждого выполнения тела цикла параметр i увеличивается на -1.


Найти произведение чисел делящихся на 2 от 10 до 20.

Program Mult; Uses crt;

var x:integer; P:real;

Begin

clrscr;

p:=1; { начальное значение произведения }

for x:=10 to 20 do

if x mod 2=0 then p:=p*x;

write('Произведение чисел, делящихся на 2 от 10 до 40 равно P=',p)

End.

СУММА. ПРОИЗВЕДЕНИЕ. ТАБУЛИРОВАНИЕ.


Рассмотрим суммирование числового ряда, если элемент ряда является

алгебраическим выражением с помощью циклов ДЛЯ, ПОКА, ДО:


Найти сумму ряда для i от 1 до 15, каждый элемент которого выражается

по формуле , то есть найти сумму: 6+9+14+...


Program Summa; Uses crt; Program Summa; Uses crt;

var s,i,n: integer; var s,i,n,h: integer;

Begin Begin

clrscr; clrscr;

s:=0; n:=15; s:=0; i:=1; n:=15; h:=1;

FOR i:=1 TO n DO s:=s+(i*i+5); WHILE i

write('Сумма числового ряда S=',s); begin

End. s:=s+(i*i+5);

i:=i+h;

Program Summa; Uses crt; end;

var s,i,n,h: integer; write('Сумма ряда S=',s);

Begin End.

clrscr;

s:=0; i:=1; n:=15; h:=1;

REPEAT

s:=s+(i*i+5);

i:=i+h;

UNTIL in;

write('Сумма числового ряда S=',s);

End.

Найти произведение чисел ряда, каждый элемент которого определяется по формуле (i+1)/i и i изменяется от 1 до 20 с шагом 0.2 , т.е. найти произведение чисел: P=2*1.8333*1.714*1.625*...

Program Mult; Uses crt;

var i,p,n,h: real;

Begin

clrscr;

p:=1; i:=1; n:=20; h:=0.2;

while i

write('Произведение ряда чисел P=',p);

End.

ТАБУЛИРОВАНИЕ (продолжение)


Для получения качественного вывода таблицы применяется указание ШИРИНЫ

ПОЛЯ ВЫВОДА, которая пишется после переменной через двоеточие.

Например, а:5 или в:6 .Для числа выделяется поле из пяти символов.

Но следует иметь ввиду, что целые и вещественные числа при таком выводе

в таблице будут расположены нестандартно.


Для получения более качественного вывода таблицы применяют GOTOXY(C,R).

C - номер символа в строке, изменяется от 1 до 79 , { Column }

R - номер строки, изменяется от 1 до 24. { Row }

При выводе таблицы значение C не изменяется, а значение R должно, после каждой выведенной строки, увеличиваться на 1.


Рассмотрим программу решения задания #2 практического занятия #14.

Program Tab; Uses crt;

var x,h,n: real; r:byte;

Begin

clrscr;

x:=7; h:=0.4; n:=15; r:=1; { r - номер строки }

repeat

gotoxy(1,r); write('X=',x:2,' Y=',(x*x+5*x+4)/(x-6));

x:=x+h; r:=r+1; ПРИМЕЧАНИЯ: 1. Выравнивание разрядов

until xn; производится if-then-else

End. 2. Если строк в таблице больше, чем строк на

экране, то применяется поэкранный вывод с

очисткой экрана (см. WHEREY занятие № 17).


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

Вывести таблицу значений функции на интервале 1,2..15.


Program Tab; Uses crt;

var x, n: integer;

Begin

clrscr; n:=15;

for x:=1 to n do if x=5 then writeln('X=',x:2,' Y-не определяется')

else writeln('X=',x:2,' Y=',1/(x-5) );

End.

ТАБЛИЦА П И Ф А Г О Р А


Если телом цикла является циклическая конструкция, то такие циклы называют ВЛОЖЕННЫМИ.


Program Pifagor; Uses crt;

var i,j: integer;

Begin

clrscr;

gotoxy(20,1);writeln('Таблица Пифагора');


FOR I:=1 TO 9 DO

BEGIN

FOR J:=1 TO 9 DO

BEGIN

gotoxy(i*4,j*2);

write(i*j:4);

END;

WRITELN;

END;


for i:=1 to 41 do

begin

gotoxy(i,3);write('-');

if i

gotoxy(9,i);

write('!');

end;

end;

gotoxy(5,22);

readkey;

End.



4. Практическая часть.

АиПО: компьютер с установленной ОС Линукс Минт Росинка

Цель работы: Научиться составлять программы с помощью оператора «ветвление»

Ход работы

5. Домашнее задание:

1.Выучить конспект.

2. Угринович Н.Д. Информатика и ИТ. Учебник для 9 класса.§4.7,Стр.133-137.

3.Ответить на вопросы стр.133-137

6.Вопросы учеников.

Ответы на вопросы учащихся.

7.Итог урока.

Подведение итога урока. Выставление оценок.




Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!