Консультация № 176105
18.01.2010, 01:16
0.00 руб.
0 1 1
Дорогие эксперты, помогите решить!


Даны 3 последовательности разной размерностью.
Найти:
1. Произведение 1-го и послед.элемента (с помощью функций)
2. Сложить каждый элемент последовательности с найденным значением (с помощью процедур)
3. Вывести найденную последовательность (с помощью процедур)
4.отсортировать по убыванию

Заранее БОЛЬШОЕ СПАСИБО!!!

Обсуждение

давно
Профессор
401888
1232
18.01.2010, 11:07
общий
это ответ
Здравствуйте, Бекмансурова Гульдар!
Решение задачи с комментариями в приложении. Удачной сдачи!

Приложение:
uses crt;
const max=100;{максимальный размер масива, на Ваше усмотрение}
type mas=array[1..max] of real;{тип массива - массив вещественных чисел размером до 100}
procedure Vvod(var v:mas;var x:byte);{создание массива, в программу передаются элементы массива и его размер}
var i:byte;
begin
repeat
write('Размер последовательности=');
readln(x);
until x in [1..max];
for i:=1 to x do
v[i]:=10*random;{заполняем вещественными числами от 0 до 10, на Ваше усмотрение}
end;
procedure Vyvod(var v:mas;x:byte;c:string);{вывод последовательностей на экран,
передаем в программу элементы массива, берем из программы его размер и пояснительный заголовок}
var i:byte;
begin
writeln(c);
for i:=1 to x do
write(v[i]:6:1);{}
writeln;{}
writeln;
end;
function Proiz(v:mas;x:byte):real;{произведение первого на последний}
begin
Proiz:=v[1]*v[x];{просто умножаем}
end;
procedure Sloz(var v:mas;x:byte);{сложение элементов с произведением}
var i:byte;
p:real;
begin
p:=Proiz(v,x);{вычисляем произыедение}
writeln('Произведение первого и последнего элементов=',Proiz(v,x):0:1);
writeln;
for i:=1 to x do
v[i]:=v[i]+p;{прибавляем его ко всем элементам}
end;
procedure Sort(var v:mas;x:byte);{сортировка последовательности}
var i,j:byte;
b:real;
begin
for i:=1 to x-1 do
for j:=i+1 to x do
if v[i]<v[j] then{по убыванию}
begin
b:=v[i];{простым обменом}
v[i]:=v[j];
v[j]:=b;
end;
end;
var a,b,c:mas;
n:byte;
begin
clrscr;
randomize;{генерируем каждый раз новые последовательности}
Vvod(a,n);{создаем}
Vyvod(a,n,'Исходная последовательность А:');{выводим}
Sloz(a,n);{сложение с произведением}
Vyvod(a,n,'Последовательность А после сложения с произведением:');{вывод}
Sort(a,n);{сортировка}
Vyvod(a,n,'Последовательность А после сортировки по убыванию:');{вывод}
write('Press Enter...');
readln;{делаем задержку для просмотра до нажатия клавиши Enter,
потом все то же для остальных последовательностей}
Vvod(b,n);
Vyvod(b,n,'Исходная последовательность B:');
Sloz(a,n);
Vyvod(a,n,'Последовательность B после сложения с произведением:');
Sort(b,n);
Vyvod(b,n,'Последовательность B после сортировки по убыванию:');
write('Press Enter...');
readln;
Vvod(c,n);
Vyvod(c,n,'Исходная последовательность C:');
Sloz(c,n);
Vyvod(c,n,'Последовательность C после сложения с произведением:');
Sort(a,n);
Vyvod(c,n,'Последовательность C после сортировки по убыванию:');
write('Press Enter...');
readln
end.
Форма ответа