Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Задачка на Pascal (https://forum.antichat.xyz/showthread.php?t=113047)

LASS0 26.03.2009 10:33

Задачка на Pascal
 
Небольшая задачка на массивы, выручайте у самого мозгов не хватает(

Дан массив F(20). Найти сумму положительных элементов, лежащих перед наименьшим элементом этого массива и количество отрицательных элементов, лежащих после наименьшего элемента.

s0l_ir0n 26.03.2009 10:55

var
f: array [1..20] of integer;
sumdo, sumposle, pos,i, min:integer;
begin
min:=0;
for i:=1 to 20 do begin
if f[i]>min
then begin min:=f[i];
pos:=i;
end;
//Вычсляем минимальный элемен массива и его позицию в массиве

for i:=1 to pos-1 do begin;
if f[i]>=0
Then sumdo:=sumdo+f[i]
end;
//Считаем положительные до минимального элемента

for i:=pos+1 to 20
do begin
if f[i]<0
Then inc(sumposle);
end;
//Считаем отрицательные после минимального элемента
-
Как-то так. Писал прям в ответе, не проверял, но думаю смысл ясен.

lll6 26.03.2009 15:55

Код:

var
f: array [1..20] of integer;
sumdo, sumposle, pos,i, min:integer;
begin
min:=maxint;
for i:=1 to 20 do begin
readln(f[i]);
if f[i]<min then begin
min:=f[i];
pos:=i;
end;
end;
//Вычсляем минимальный элемен массива и его позицию в массиве

for i:=1 to pos-1 do
if f[i]>0 then sumdo:=sumdo+f[i];
//Считаем положительные до минимального элемента

for i:=pos+1 to 20 do
if f[i]<0 Then inc(sumposle);
//Считаем отрицательные после минимального элемента
Writeln('Сумма:',sumdo);
Writeln('Количество:',sumposle);
End.

Подправил решение s0l_ir0n, было несколько ошибок.


Время: 01:01