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

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    440,04 Кб
  • Опубликовано:
    2015-05-01
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Самостоятельная работа 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}.

Блок-схема


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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!