Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Po_distsipline_programmirovanie.doc
Скачиваний:
24
Добавлен:
07.02.2015
Размер:
140.29 Кб
Скачать

6. Программирование алгоритмов со структурой вложенных циклов.

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

Пример на паскале:

{дано нат. K. напечатать К-ю цифру последовательности 12345678910111213...,

в которой записаны подряд все натуральныe числa}

uses crt;

var i,j,k,n,o,a,t:integer;

begin

write('Введите k=');

read(k);

t:=0;i:=0;

repeat

t:=t+1;

j:=t;

while j>0 do{считаем количество цифр в числе и добавляем к общему количеству}

begin

j:=j div 10;

i:=i+1;

end;

until i>=k;{дошли до номера к}

while i>=k do{возвращаемся по цифрам последнего числа до нужной}

begin o:=t mod 10;

t:=t div 10;

i:=i-1;

end;

writeln('k-я цифра:',o);

end.

7. Обработка одномерных массивов и обработка матриц.

Массив из 30 целых чисел заполнить, присваивая элементам, делящимся на 4, значения 0, остальным элементам значение -1.

Cоставить три варианта программы с использованием различных операторов организации циклов.

Вариант 1. Использование оператора For

Текст программы

program lab5_1_1;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

m:array [1..30] of integer;

i:byte;

begin

for i:=1 to 30 do begin

if i mod 4 =0 then m[i]:=0

else m[i]:=-1;

writeln(m[i]);

end;

readln;

end.

Вариант 2. Использование оператора While

Текст программы

program lab5_1_2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

m:array [1..30] of integer;

i:byte;

begin

i:=0;

while i<=30 do begin

i:=i+1;

if i mod 4 =0 then m[i]:=0

else m[i]:=-1;

writeln(m[i]);

end;

readln;

end.

Вариант 3. Использование оператора Repeat

Текст программы

program lab5_1_3

{$APPTYPE CONSOLE}

uses

SysUtils;

var

m:array [1..30] of integer;

i:byte;

begin

i:=0;

repeat

i:=i+1;

if i mod 4 =0 then m[i]:=0

else m[i]:=-1;

writeln(m[i]);

until i=30;

readln;

end.

8. Программирование с использованием подпрограмм пользователя.

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

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

Программа на паскале:

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

uses crt;

function Sum(m,n,a,b,c:integer;d:real):real;

var i:integer;

s:real;

begin

s:=0;

for i:=n to m do

s:=s+a*exp(ln(i)*b)+c*i+d;

Sum:=s;

end;

var m:integer;

b,y:real;

begin

clrscr;

write('m=');

readln(m);

write('b=');

readln(b);

y:=2*Sum(m,2,3,3,0,5)/(2*Sum(m,2,3,3,1,1)+Sum(m+1,3,2,3,0,b));

write('Y=',y:0:4);

readln

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]