Delphi-Help

Главная Статьи Массивы Задача 241 на Pascal

Задача 241 на Pascal

Оцените материал
(0 голосов)


Задача 241 на Pascal

Дан массив. Необходимо:

1. Отсортировать массив методом пузырька.

2. Ввести число и найти в массиве два числа чтобы a+x=y, где a,x - числа из массива; y-вводимое число.

var
a:array[1..10]of integer;            {массив чисел}
i:integer;                           {для цикла}
 
{ процедура сортировки массива a[1..10] МЕТОДОМ ПУЗЫРЬКА }
PROCEDURE sort;
var
flag:boolean;
tmp:integer;
BEGIN
repeat
flag:=false;
for i:=1 to 10-1 do if a[i]>a[i+1] then
 begin
  tmp:=a[i];
  a[i]:=a[i+1];
  a[i+1]:=tmp;
  flag:=true;
 end;
until not flag;
END;
 
{функция БИНАРНОГО ПОИСКА числа в массиве a[1..10]}
FUNCTION search(const x:integer):boolean; { x - искомое число }
var
l,r,c:integer;
flag:boolean;
n:integer;
BEGIN
l:=1;
r:=10;
flag:=false;
repeat
c:=round((r-l)/2)+l;
if a[c]=x then flag:=true else
 if x<a[c] then r:=c-1 else l:=c+1;;
until (l>r)or flag;
 
search:=flag;  {если число x нйдено в массиве a[1..10], то TRUE}
END;
 
PROCEDURE search_00;  {поиск по условию задачи}
var
j:integer;
Y,x:integer;
flag_found:boolean;
BEGIN
write('Найти в массиве два числа сумма которых равна: ');
readln(Y);
j:=0;
repeat
inc(j);
x:=Y-a[j];
flag_found:=search(x);
until flag_found or(j=10);
 
if flag_found then writeln('Такие числа найдены: ',a[j],'+',x,'=',Y)
 else writeln('Числа чтобы   a + x = ',Y,'   не найдены.')
END;
 
 
BEGIN
randomize;
for i:=1 to 10 do a[i]:=random(90)+10; {массив из любых двухзнаковых чисел}
 
writeln('До сортировки:');
for i:=1 to 10 do write('  ',a[i]);
writeln;
 
sort;
writeln('После сортировки по возрастанию:');
for i:=1 to 10 do write('  ',a[i]);
writeln;
 
writeln;
search_00;             {поиск по условию задачи}
 
END.

В данной задаче реализованы: сортировка методом "пузырька" и метод бинарного поиска. Эти методы часто применяют при решении различных задач, поэтому необходимо знать эти методы и уметь их применять.

Прочитано 7627 раз
Другие материалы в этой категории: « Задача 240 на Pascal Задача 242 на Pascal »

Авторизация



Счетчики