Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2009, 00:05   #1
Alt+F4
 
Регистрация: 24.04.2009
Сообщений: 8
Вопрос Pascal. Задача на одномерные массивы с использованием процедур

Помогите пожалуйста с решением задачи:

Заданы 2 любых одномерных массива V и F. Для каждого массива вычислить:

- сумму максимального и минимального элементов
- количество положительных элементов

Использовать процедуры ОБЯЗАТЕЛЬНО.
Alt+F4 вне форума Ответить с цитированием
Старый 25.04.2009, 00:15   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Чем помочь? Решить?

Что непонятно? Где ваши наработки?
Задача-то элементарная. Уж если совсем невмоготу, то используйте поиск. Решалась уже много раз.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.04.2009, 00:23   #3
Alt+F4
 
Регистрация: 24.04.2009
Сообщений: 8
По умолчанию

Ну собственно она решена, только без процедур. Вот :

Program LAST;
uses crt;
const n=10;
type
mass=array [1..10] of real;
var
v,f:mass;
x,max,min,summ,k,max1,min1,k1:real;
i:integer;

begin clrscr;randomize;
writeln('Massiv V: ');
for i:=1 to n do begin v[i]:=random(10);
write(v[i]:2:0);
end;

begin writeln;
writeln('Massiv F: ');
for i:=1 to n do begin f[i]:=random(10);
write(f[i]:2:0);end;writeln;end;

begin
max:=v[1];min:=v[1];
for i:=2 to n do if (v[i]>max) then max:=v[i];
for i:=2 to n do if (v[i]<min) and (v[i]>0) then min:=v[i];
for i:=1 to n do if (v[i]>0) then k:=k+1;
writeln('Dlya V: Sum= ',round(max+min),' Kol-vo= ', round(k));

max1:=f[1];min1:=f[1];
for i:=2 to n do if f[i]>max1 then max1:=f[i];
for i:=2 to n do if (f[i]<min1) and (f[i]>0) then min1:=f[i];
for i:=1 to n do if f[i]>0 then k1:=k1+1;
writeln;
writeln('Dlya F: Sum= ',round(max1+min1),' Kol-vo= ', round(k1));
readkey; end;
end.


Мне только нужно имеено с процедурами, в которых я не секу. Сейчас поиск поюзаю.
Alt+F4 вне форума Ответить с цитированием
Старый 25.04.2009, 00:38   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Alt+F4, в следующий раз сразу выкладывайте свой код.

И еще: код заключайте в теги CODE ("#" на панели в окне редактирования).

Вам обязательно с процедурами, или можно функциями? Просто с ними удобнее:
Код:
uses crt;
const n=10;
type
mass=array [1..10] of real;
var
v,f:mass;
i : integer;

function getmin(a : mass; m : integer) : integer;
var i,min : integer;
begin
min := 1;
for i:=1 to m do
 if a[i]<a[min] then min := i;
 getmin := min;
end;

function getmax(a : mass; m : integer) : integer;
var i,max : integer;
begin
max := 1;
for i:=1 to m do
 if a[i]>a[max] then max := i;
getmax := max;
end;

function getPolCount(a : mass; m : integer) : integer;
var i,count : integer;
begin
count := 0;
for i:=1 to m do
 if a[i]>0 then inc(count);
getPolCount := count;
end;

begin
clrscr;
randomize;
writeln('Massiv V: ');
for i:=1 to n do
 begin
 v[i]:=random(10);
 write(v[i]:2:0);
 end;
writeln;
writeln;
writeln('Massiv F: ');
for i:=1 to n do
 begin
 f[i]:=random(10);
 write(f[i]:2:0);
 end;

writeln;
writeln;
writeln('massiv V:');
writeln('summa min i max = ',(v[getmin(v,n)]+v[getmax(v,n)]):2:0);
writeln('kolechestvo polozhitelnyh el-v: ',getPolcount(v,n));

writeln('massiv F:');
writeln('summa min i max = ',(f[getmin(f,n)]+f[getmax(f,n)]):2:0);
writeln('kolechestvo polozhitelnyh el-v: ',getPolcount(f,n));


readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.04.2009, 00:41   #5
Alt+F4
 
Регистрация: 24.04.2009
Сообщений: 8
По умолчанию

Мне именно с процедурами нужно
Alt+F4 вне форума Ответить с цитированием
Старый 25.04.2009, 00:45   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну если с процедурами, то так:
Код:
uses crt;
const n=10;
type
mass=array [1..10] of real;
var
v,f:mass;
i : integer;
min,max,count : integer;

procedure getmin(a : mass; m : integer; var min : integer);
var i : integer;
begin
min := 1;
for i:=1 to m do
 if a[i]<a[min] then min := i;
end;

procedure getmax(a : mass; m : integer; var max : integer);
var i : integer;
begin
max := 1;
for i:=1 to m do
 if a[i]>a[max] then max := i;
end;

procedure getPolCount(a : mass; m : integer; var count : integer);
var i : integer;
begin
count := 0;
for i:=1 to m do
 if a[i]>0 then inc(count);
end;

begin
clrscr;
randomize;
writeln('Massiv V: ');
for i:=1 to n do
 begin
 v[i]:=random(10);
 write(v[i]:2:0);
 end;
writeln;
writeln;
writeln('Massiv F: ');
for i:=1 to n do
 begin
 f[i]:=random(10);
 write(f[i]:2:0);
 end;

writeln;
writeln;
writeln('massiv V:');
getmin(v,n,min);
getmax(v,n,max);
writeln('summa min i max = ',(v[min]+v[max]):2:0);
getPolCount(v,n,count);
writeln('kolechestvo polozhitelnyh el-v: ',count);

writeln('massiv F:');
getmin(f,n,min);
getmax(f,n,max);
writeln('summa min i max = ',(f[min]+f[max]):2:0);
getPolCount(f,n,count);
writeln('kolechestvo polozhitelnyh el-v: ',count);


readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.04.2009, 00:47   #7
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

ну если процедуры, то обявляй глобальные переменные которые будут содержать нужные результаты и затем переделывай:
Код:
var result:integer;
......................
procedure getPolCount(a : mass; m : integer; var result:integer);
begin
.............
result:=..;
end;
и т.д.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 25.04.2009, 00:48   #8
Alt+F4
 
Регистрация: 24.04.2009
Сообщений: 8
По умолчанию

Огромное спасибо. В следующий раз буду аккуратней при создании тем
Alt+F4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal]: Задача на символьную строку, цикл, одномерные массивы., выручите плз Knife Помощь студентам 2 31.03.2009 21:41
Одномерные массивы 2 (Pascal) Дима82 Помощь студентам 4 16.02.2009 21:21
Одномерные массивы(Pascal) Дима82 Помощь студентам 7 07.06.2008 15:33
Одномерные массивы - Pascal W_P Помощь студентам 8 27.02.2008 19:24
Организация программ с использованием процедур....Pascal flexo_77 Помощь студентам 1 19.12.2007 14:06