Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Лабораторная работа № 6. Составление и отладка программ на циклические структуры

 

Цель работы. Научиться составлять алгоритмы и программы с использованием циклических конструкций: While… do…, Repeat… Until, For… to… do… . Научиться составлять программы на вложенные циклы.

 

Ход работы

 

1) Изучить теоретический материал по теме лабораторной работы (лекции + учебник).

2) Составить алгоритмы решения задач своего варианта.

3) Составить блок-схему.

4) Составить программы по заданиям своего варианта.

5) Запустить программу на выполнение.

6) Отредактировать программы и сохранить их на диске А:\ под именами: Lab 6-1.pas; Lab 6-2.pas; Lab 6-3.pas; Lab 6-4.pas.

7) Распечатать программы.

8) Составить отчёт.

9) Защитить работу.

 

Содержание отчёта

Отчет по лабораторной работе должен содержать:

1) Тема работы.

2) Цель работы.

3) Ход работы.

4) Постановка задачи.

5) Алгоритм решения задачи.

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

7) Распечатка программы.

8) Результат работы программы.

 

Вопросы для допуска к лабораторной работе № 6

 

1) Что такое Циклы?

2) Какая базовая структура соответствует циклу “До” и “Пока”?

3) Формат строки цикла с параметрами?

4) Когда используется оператор цикла с параметрами?

5) Формат строки цикла с предусловием?

6) Формат строки цикла с послесловием?

 

Методические указания к лабораторной работе № 6

 

Циклические алгоритмические конструкции

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

Оператор цикла с параметром

 

Шаг равен +1

for i:= n to m do <оператор>;

где for -для

i - параметр цикла

n - начальное значение параметра цикла

to -до

m - конечное значение параметра цикла

do -делать

<оператор> - тело цикла

При этом должно выполняться условие: n<m

Если тело цикла состоит из нескольких операторов, то они заключаются в операторные скобки begin ... end;

for i:=n to m do begin

<оператор 1>;

< оператор 2>;

< оператор N>;

end;

Переменная i (счетчик) увеличивается на единицу от начального значения n до конечного значения m при каждом новом значении i исполняется оператор внутри цикла. Параметр цикла, начальное и конечное его значения должны быть описаны как integer.

Если n=m, то цикл выполняется один раз.

Если n>m, то цикл не выполняется ни разу.

• Шаг равен -1

for I:=n down to m do <оператор>;

где for -для

i - параметр цикла

n - начальное значение параметра цикла

downto - до

m - конечное значение параметра цикла

do -делать

< оператор > - тело цикла

При этом должно выполняться условие: n> m

 

Примеры вычисления сумм, количеств и произведений Алгоритмы подсчета:

Сумм

Первоначальное значение S:-0

Подсчет в цикле: S:=S+{текущее значение}

1.1 Вычислить: S=1+2+3+...N.

program zadacha ; {вычисление суммы натуральных чисел}

var n,s,i:integer;

begin

writeln ('введите натуральное число N=') ;

readln (n) ;

s:=0;

for i:=l to n do

s:=s+i;

writeln ( 'сумма=',s)

end.

1.2 Вычислить:

program zadacha ;{вычисление суммы)

var n,i: integer; s:real;

begin

writeln ( 'введите натуральное число N=' ) ;

readln (n) ;

s:=0;

for i:=l to n do

s :=sgrt (2+s) ;

writeln ( *сумма=' , s)

end.

Количества

2.1 Первоначальное значение k: = О

Подсчет в цикле:

K:=k+1

Среди чисел 1 < N < 100 найти все пары чисел, для которых их сумма равнялась бы их произведению.

program zadacha ( input, output );

{нахождение пар чисел}

var

k, a, b: integer;

begin

r:=0;

for a:=l to 100 do

for b:=l to 100 do

begin

If a+b=a*b then begin

k:=k+l;

writein('числа',a,b);

end

end;

if k=0 then writein ('таких чисел нет') else ('k=', k);

end.

 

2.2 Определить, сколько из N заданных точек принадлежат графику у = |х|

program zadacha ; {количество точек, принадлежащих графику)

var k,i,n:integer; х,у:real;

begin

writein ( 'введите количество точек N=');

readln (n) ;

k:=0;

for i:=1 to n do begin

writein ('введите координаты',1,'-ой точки х и у') ;

readln (x,y) ;

if y=abs (x) then k:=k+l

end;

if k=0 then writein ('таких точек нет') else writein ('k=',k)

end.

Произведений

3.1 Первоначальное значение р:=1

Подсчет в цикле:

р:= р *{множитель }

Вычислить N!

program zadacha ;{нахождение факториала числа N}

var n,p,i:integer;

begin

writeln ('введите число N=');

readln (n) ;

p:=l;

for i:=l to n do

p:=p*i;

writeln ('факториал числа' ,n,' = ' ,p)

end.

 

Оператор цикла с послесловием

 

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

Формат оператора цикла с постусловием:

repeat

<оператор1>;

<оператор2>;

<оператор М>

until <условие>,

где repeat - повторять;

<оператор1>;

<оператор2>;

< оператор N> - последовательность операторов внутри цикла (тело цикла);

until - до;

<условие>; - логическое выражение. Этот процесс завершается, тогда когда после выполнения заданной последовательности операторов логическое выражение <условие> станет TRUE (истинно).

Оператор for v:=El to E2 do S;

Эквивалентен if E2>=E1 then begin v:=El;

repeat

S;

v:=succ(v)

until v>E2;

Пример 1

Распечатать числа Фибоначчи от 1 до N. (Каждое число в последовательности, начиная с третьего, получается сложением двух предыдущих чисел. Например: 1, 1, 2, 3, 5, 8,13,21...).

program zadacha ;{числа Фибоначчи}

var a,b,c,n,i:integer;

begin

writeIn ('введите число N=') ;

readln (n) ;

a:=l; b:=l; writeln (a,b) ; i:=3;

repeat

c:=a+b; writeln (c) ; a : =b; b:=c;

until i>n

end.

 

Пример 2

Вычислить значение переменной у, при заданном значении n.

program zadacha ;

var i,n: integer; у : real;

begin y;=0; i:=J;

repeat

y:=y+1/I; I:=I+1;

until i>n;

writeln ( ' y= ' , y)

end.

 

Оператор цикла с предусловием

 

Формат оператора: while <условие> do <оператор>;

где while - пока

<условие> - логическое выражение

do - делать

<оператор> - оператор внутри цикла (тело цикла)

Оператор выполняется до тех пор, пока <условие> -имеет значение истина, прекращает выполняться, если <условие> принимает значение ложь.

 

Пример 1

Оператор for v:=El to E2 do S;

Эквивалентен

v:=El;

while v<=E2 do

begin S ; v:=succ(v) end.

Пример 2

Подсчитать сумму всех нечетных чисел от 101 до 301.

program zadacha ; {сумма нечетных чисел}

var s,i: integer;

begin s:=0;

while i<=301 do begin s:=s+i; I:=I+1; end;

writeln('сумма кубов нечетных чисел от 101 до 301=' ,s)

end.

Пустой оператор

 

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

Варианты заданий

 

Задание № 1

Составить блок-схему и программу с использованием циклических конструкций While… do… и Repeat… Until… . По заданию своего варианта.

Вычислить сумму (произведений) элементов заданного ряда.

1. 2. 3. 4.

       
 
   
 


5. 6. 7. 8.

               
   
 
       
 
 
 

 


9. 10. 11. 12.

 

 

               
     
       
 
 


13. 14. 15. 16.

 

 

               
       
 
 


17. 18. 19. 20.

 

               
 
     
   
 

 


21. 22. 23. 24.

 

 

               
       
 
 
 


25. 26. 27. 28.

 

 

       
   
 


29. 30.

 

 

Задание № 2

Составить блок-схему и программу вычисления значений функций f(x) на отрезке [a,b] в точках x:=x+h , где h- шаг цикла, с последующим выводом таблицы значений.

Варианты индивидуальных заданий указаны в таблице 6.

 

Таблица 6 – Индивидуальные варианты к заданию № 2

 

 

Варианты заданий Варианты заданий
1.f(x)=ex*Sinx , xЄ[0;6], h=0,5   2.f(x)=x2+Cos2x, xЄ[-2;0], h=0,2
3.f(x)=ex+1, xЄ[-5;5], h=0,5   4.f(x)=5x3-1, xЄ[1;4], h=0,5
5.f(x)=x*Sinx, xЄ[1;3], h=0,25   6.f(x)=5x3-1, xЄ[-5;0], h=0,5
7.f(x)=Sinx/2, xЄ[0,3;6], h=0,3   8.f(x)=ctg3x, xЄ[-П;П], h=П/4
9.f(x)=-2x2 xЄ[-4;4], h=1,5   10.f(x)=e2x+1 xЄ[0;3], h=0,4
11.f(x)=(x-1)2 xЄ[-2;5], h=1,2   12.f(x)=x3+4x2+1, xЄ[3;7], h=0,5

 

Продолжение таблицы 6

 

13.f(x)=2|x|, xЄ[-5;5], h=1   14.f(x)=5Sin(3x-П/2), xЄ[-2П;0], П/4
15.f(x)=3x+4, xЄ[-1;6], h=0,5 16.f(x)=2Cos(П/4+x), xЄ[0;4П],h=П/2
17.f(x)=lnx+1, xЄ[1;5], h=0,5   18.f(x)=tg(3x+П), xЄ[-5;5], h=П/2
19.f(x)=tg(2x), xЄ[0;2Π], h=П/4   20.f(x)=2e3x^2 xЄ[0;2], h=0,2
21.f(x)=x3+x, xЄ[-2;3], h=0,5   22.f(x)=4ln(x2+2), xЄ[1;3], h=0,4
23.f(x)=ln(2x), xЄ[2;6], h=0,4   24.f(x)=x2+3|x|-20, xЄ[-5;2], h=1
25.f(x)=1/2Cos3x, xЄ[-П/2;3П/2], h=П/2   26.f(x)=x2/2+3(x-1)/3, xЄ[-3;-1], h=0,2
27.f(x)=3x2+4x-1, xЄ[-1;4], h=1   28.f(x)=3x2+4x-5, xЄ[5;10], h=0,5

 

 

Задание № 3

Составить блок-схему, программу вычисления переменной X от х1 до х2 и Y от y1 до y2 используя вложенную циклическую структуру, где X – переменная внешнего цикла, Y – переменная внешнего цикла. Организовать вывод таблицы значений. Варианты индивидуальных заданий указаны в таблице 7.

 

Таблица 7 – Индивидуальные варианты к заданию № 3

 

 

С X X
x1 x2 y1 y2

Продолжение таблицы 7

 

 

 

Продолжение таблицы 7

 

 

Вопросы к защите лабораторной работы

 

1) Каково назначение операторов повтора (цикла)?

2) Какие требования предъявляются к выражениям, управляющим повторениями?

3) В чем отличия операторов повтора while и repeat?

4) В каких случаях предпочтительнее использовать для организации циклов оператор повтора for? Что записывается в заголовке этого оператора?

5) Каким образом в операторе цикла for описывается направление изменения значения параметра цикла?

6) Какие ограничения налагаются на использование управляющей переменной (пара­да цикла) в цикле for?

7) Какие правила пунктуации необходимо соблюдать при записи операторов?

8) Что такое вложенные циклы? Какие дополнительные условия необходимо соблюдать при организации вложенных циклов?

 


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

 

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

 

Ход работы

1) Изучить теоретический материал по теме лабораторной работы (лекции + учебники).

2) Составить графические алгоритмы по заданию данной работы.

3) Составить и откомпилировать программы.

4) Нарисовать выпуклый четырехугольник, замерить длины его сторон и одной из диагоналей. Эти параметры считать исходными данными к программам.

5) Запустить программы на выполнение используя данные полученные при выполнении пункта .

6) Отредактировать программы и сохранить их на диске А: под именами: Lab7-1.pas; Lab7-2.pas; Lab7-3.pas; Lab7-4.pas.

7) Распечатать программы и результаты их работы.

8) Составить отчёт по работе.

9) Защитить работу.

 

Содержание отчёта

 

Отчет по лабораторной работе должен содержать:

1) Тема работы.

2) Цель работы.

3) Ход работы.

4) Постановка задачи.

5) Графический алгоритм решения задачи.

6) Распечатки программ.

7) Результаты работы программ.

 


Вопросы для допуска к лабораторной работе № 7

 

1) Что понимают под структурным программированием? Зачем оно применяется?

2) Назовите основные логические структуры и проиллюстрируйте примерами программ. Как обеспечивается логически последовательная структура программы?

3) Что называется подпрограммой? В чем состоит сходство и различие подпрограмм- процедур и подпрограмм-функций в языке Турбо Паскаль?

4) В чем различие между стандартными и определенными пользователем подпрограммами? Приведите примеры.

5) Запишите синтаксическую диаграмму определения процедуры, функции.

6) Опишите последовательность событий при вызове процедуры или функции.

7) Что называется параметром, и каково его назначение? Формальные, фактические па­раметры, их взаимосвязь.

8) Каковы отличия параметров-значений от параметров-переменных, особенности их описания и применения.

9) Каковы особенности параметров-процедур и параметров-функций?

10) Чем отличаются локальные и глобальные параметры? Какова область их действия?

11) В каких случаях требуется предварительное или внешнее описание подпро­грамм? Каковы особенности использования подпрограмм с предварительным описанием?

Постановка задачи

 

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

 

Последнее изменение этой страницы: 2016-08-11

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...