Контрольная работа: Применение алгоритмов при решении программных задач

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Применение алгоритмов при решении программных задач

Самостоятельная работа 1. Линейные алгоритмы, условия, циклы

1.      Даны две переменные вещественного типа A и B. Перераспределить значения в данных переменных так, чтобы A оказалась меньшее из значений, в B - больше

Код:

, b, p: real;('Введите значения A и B через пробел: '); (a,b); a > b then :=a; :=b; :=p; ; ('A = ', a, '; B = ', b);.

Блок-схема


2.      Даны числа x, y, x1, y1, x2, y2. Проверить истинность высказывания: «Точка с координатами (x,y) лежит внутри прямоугольника, левая верхняя вершина которого находится в точке (x1,y1), правая нижняя вершина - в точке (x2,y2)»

Код:

,y,x1,y1,x2,y2: integer;('x: ');(x);('y: ');(y);('x1: ');(x1);('y1: ');(y1);('x2: ');(x2);('y2: ');(y2);(x>x1) and (x<x2) and

(y<y1) and (y>y2) then('Верно') else('Не верно');

End.

Блок-схема


3.      Написать программу, вычисляющую произведение первых n нечетных натуральных чисел

Код:

, i, s, n: integer; :=3; s:=1; i:=1; ('Введите n:'); (n); :=s*k; i:=i+1; k:=k+2; =n; ('произведение первых n нечётных натуральных чисел: ', s); .

Блок-схема


4.      С клавиатуры вводится последовательность чисел до тех пор, пока не задается ноль. Вывести на экран те из них, которые попадут в интервал [ a,b]

Код:

Блок-схема:


5.     
Дано натуральное число N. Получить число P, содержащее в своей записи цифры числа N, записанные в обратном порядке. 234->432

Код

, P: Longint;('N= ');(N);:=0;:=(P+(N mod 10))*10;:=N div 10;N=0;:=P div 10;('P= ',P);.

Блок-схема

6.     
Дано целое число N>1. Вывести наибольшее из целых чисел K, для которых сумма 1+2+3…+K меньше или равна N, и саму эту сумму

Код:

Var, K, Summ: integer;('N= ');(N);:=0;:=0;(K);(Summ,K);Summ+K>N;('K= ',K);('Summ= ',Summ);.

Блок-схема

Самостоятельная работа 2. Массивы, строки, множества, подпрограммы, файлы

1.      Дан массив вещественных чисел. Указать позицию последнего экстремального элемента (т.е. минимального или максимального)

Код:

:array [1..100] of integer;, min, n, i, maxInd, minInd:integer;('n=');(n);i:= 1 to n do begin(a[i]);(a[i],' ');;:= 0; := 0;:= a[1];:= a[1];i:=1 to n do begina[i] > max then begin:= a[i];:= I;;a[i] < min then begin:= a[i];:= I;;; maxInd > minInd then //индекс какого экстремального значения больше, тот и выводится на экран('index (max) = ', maxInd) ('index (min) = ', minInd);

end.

Блок-схема


2.     
Дан массив из N целых чисел. Сформировать массив M, в который поместить сначала все нулевые элементы исходного массива, затем - отрицательные элементы, затем положительные элементы

crt;n=10;a,b:array[1..n]of integer;,k:integer;;('-> ');i:=1 to n do read(a[i]);;:=0;i:=1 to n do if a[i]>0 then(k);[k]:=a[i];;i:=1 to n do if a[i]<0 then(k);[k]:=a[i];;i:=1 to n do if a[i]=0 then(k);[k]:=a[i];;i:=1 to n do write(b[i],' ');;

end.

Блок-схема

3.      Дан массив A из N целых чисел. Осуществить циклический сдвиг элементов массива вправо на одну позицию. При этом A1 перейдет в A2, A2 в A3 и т.д. An перейдет в A1

Код:

;:array [1..100] of integer;,n,temp:integer;;('Введите количество элементов: ');(n);('Исходный массив: ');i:=1 to n do[i]:=random(10)-5;(a[i],' ');;;('Массив после сдвига элементов на одну позицию: ');:=a[n];i:=n downto 2 do[i]:=a[i-1];[1]:=temp;i:=1 to n do(a[i],' ');;.

Блок-схема

алгоритм массив матрица

4.      Дана целочисленная матрица A размерности 5x5. Вывести ее элементы из каждого столбца в обратном порядке

Код:

= array[1..5,1..5] of integer;a:matrix;:integer;var i:=1 to 5 dovar j:=1 to 5 do[i,j]:=random(10);('Дана целочисленная матрица');var i:=1 to 5 dovar j:=1 to 5 do(a[i,j],' ');;;('Вывести элемент из каждого столбца в обратном порядке');;var j:=1 to 5 do:=5;(j,' столбец ');not(k=0) do(a[k,j],' ');:=k-1;;;;.

Блок-схема


5.     
Даны непустые строки S1 и S2. Определить количество вхождений строки S2 в строку S1

Код:

program instring;s1, s2: string;: integer;('s1 = ');(s1);('s2 = ');(s2);:= 0;pos(s2, s1) > 0 do(s1, 1, pos(s2, s1) + length(s2));:= i + 1;('Count of join s2 in s1: ', i);.

Блок-схема


Код

SumRange(A, B: integer): integer;i, t: integer;:= 0;A > B then SumRange:= 0 elsei:= A to B do t:= t + i;:= t;a, b, c: integer;('введите a, b, c: ');(a, b, c);('сумма чисел от a до b: ', SumRange(a, b));('сумма чисел от b до c: ', SumRange(b, c)).

Блок-схема


7.     
Сформировать файл, содержащий сведения об n работниках предприятия. Должны учитываться следующие сведения: ФИО, стаж работы, профессия. Вывести фамилии людей определенной профессии с опытом работы не менее X лет (профессия и минимальный стаж вводятся с клавиатуры)

Код:

p14_07;=record:string[50];:word;:string[50];;:tperson;: file of tperson;:string[50];:word;,i:byte;('Укажите режим работы:');(#9,'1-ввод данных в файл');(#9,'2-вывод данных из файла');(c);(data, 'p14_07.dat');c of

:begin('Для прекращения ввода данных укажите пустую фамилию или специальность...');(data);.name:=''; person.year:=0;person.speciality:='';('---------------------------------------');(' Укажите ФИО работника: '); readln(person.name);person.name='' then break;(' Укажите год приема на работу: ');readln(person.year);(' Укажите специальность: ');readln(person.speciality);(person.name<>'') and (person.speciality<>'') then(data,person);:=i+1;;{/if}(person.name = '') or (person.speciality = '');('В файл сохранено ',i,' записей о сотрудниках.');(data);;{/case-1}

:begin(data);('Укажите специальность:');readln(speciality);('Укажите минимальный стаж работы:');readln(stage);not eof(data) do(data, person);(person.speciality = speciality) and ((2015-person.year) > stage) then:=i+1;(i,'. ', person.name);;;{while}(i = 0) then writeln('Данные, подходящие под указанные критерии, не найдены.');(data);;{/case-2};{/case}.

8.      Сформировать отдельный модуль, содержащий описание функции Quarter(x,y) целого типа, определяющей номер координатной четверти, в которой находится точка с ненулевыми координатами. Подключить данный модуль, с помощью его функции Quarter определить четверти для пяти точек

Код

p14_08;u14_08;:byte;,y:integer;i:=1 to 5 do('Укажите координаты ',i,'и точки (x,y): ');readln(x,y);quarter(x,y)>0 then writeln('Указанная точка расположена в ',quarter(x,y),'и координат четверти.')writeln('ТОчка расположена НА КООРДИНАТАХ ОСИ.');;.

Блок-схема


Код

u14_08;quarter(x,y: integer):byte;quarter(x,y: integer):byte;(x=0) or (y=0) then

{частный случай точка на координатной оси}:=0;;;x > 0 theny > 0     then quarter:=1quarter:=4;y > 0     then quarter:=2quarter:=3;;;{function}.

Блок-схема


Источник: https://www.bibliofond.ru/detail.aspx?id=787191