IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> рекурсия.
сообщение
Сообщение #1


самовнушение всегда спасает.
*

Группа: Пользователи
Сообщений: 27
Пол: Женский
Реальное имя: Анастасия

Репутация: -  1  +


Во входном файле задана непустая последовательность положительных вещественных чисел, за которой следует отрицательное число. Описать рекурсивную функцию sum без параметров для нахождения суммы этих положительных чисел.

program V_12_11;
function sum:extended;
var num:extended;

begin
writeln ('vvedite chislo');
readln;
if num >=0 then begin
sum:=num+sum;
end;
end;


var res:extended;
s:string;
begin
repeat
writeln ('vvedite neskolko neotricatelnih chisel, zaversaja vvod kagdogo chisla klavishej 'Enter'');
writeln ('dlja zavershenija vvoda vvedite otricatelnoje chislo i nagmite 'Enter'');

res:=sum;

writeln ('summa neotricatelnih chisel sledujushich do otricatelnogo chisla: ');
writeln (res);

writeln ('povtorit - Enter. vihod - luboj simvol + Enter');
readln (s);

until s<>";
end.


--------------------
думай дважды, чтоб не пожалеть однажды.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Файл, как я понимаю, текстовый? Тогда что-то вроде:

var
f: text;

function sum: extended;
var num: extended;
begin
read(f, num);
if num < 0 then sum := 0.0
else
sum := num + sum;
end;


Допиши программу сама. Осталось открыть файл, вызвать функцию, и закрыть файл... Но здесь подразумевается, что во входном файле обязательно есть отрицательное число. Если его не будет - будет сбой. Попробуй этого избежать...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


самовнушение всегда спасает.
*

Группа: Пользователи
Сообщений: 27
Пол: Женский
Реальное имя: Анастасия

Репутация: -  1  +


mega_chok.gif mega_chok.gif
program V_12_11;
var f:text;
function sum:extended;
var num:extended;

begin
read (f, num);
if num<0 then sum:=0.0
else sum:=num+sum;
end;


const fn='data.txt';
n=5;
var res:extended;
i:integer;
s:string;

begin
assign (f, fn);

repeat
writeln ('soderzimoe fajla: ');
rewrite (f);
randomize;
for i:=1 to n do begin
res:=1+random(100)/10;
writeln (f, res);
if i>1 then write (',');
write (res:0:1);
end;

writeln (f, 0);
writeln (',',0);

reset (f);
res:=sum;
close (f);
writeln ('summa =', res:0:1);

writeln ('povtorit - Enter, vihod - luboj simvol+Enter');
readln (s);
until s<>";

end.


--------------------
думай дважды, чтоб не пожалеть однажды.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 23:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name