- •По дисциплине «Программирование»
- •1. Основные этапы решения задач с помощью компьютера. Математическая модель. Этапы процесса разработки программы.
- •2. Способы записи алгоритма. Программа на языке высокого уровня. Стандартные типы
- •3. Программирование алгоритмов циклической структуры с заданным числом повторений
- •4. Программирование алгоритмов итерационной структуры.
- •5. Программирование алгоритмов разветвляющейся структуры
- •6. Программирование алгоритмов со структурой вложенных циклов.
- •7. Обработка одномерных массивов и обработка матриц.
- •8. Программирование с использованием подпрограмм пользователя.
- •9. Обработка символьных данных.
- •10. Обработка файловых структур данных.
- •11. Программирование с выводом результатов в виде графиков.
- •12. Программирование рекурсивных алгоритмов.
- •13. Динамические структуры данных.
- •14. Списки (основные виды и способы реализации).
- •15. Структуры данных «Стеки и очереди». Принципы работы.
- •16. Структуры данных «Графы и деревья». Принципы работы.
- •17. Типовая система программирования. Схема функционирования. Компилятор.
- •18. Структура языков программирования высокого уровня. Грамматика. Распознаватели.
- •19. Способы конструирования современных программ. Жизненный цикл программ.
- •20. Объектно-ориентированное программирование.
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.