• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

2 задачи на Паскале: с рекурсивными процедурами и текстовыми файлами

ДенисКО

Новые
Регистрация
2 Ноя 2009
Сообщения
19
Реакции
0
Баллы
0
2 задачи на Паскале: с рекурсивными процедурами и текстовыми файлами

1. Числа Фибоначчи U0 ,U1 ,U2 ,… определяются следующим образом:
{U0=0, U1=1; Un=Un-1 - Un-2, n=2,3,4,...
Написать программу вычисления первого числа Фибоначчи, большего m (m>1), включающую рекурсивную функцию, которая основана на непосредственном использовании соотношения Un =Un-1 +Un-2

2. Пусть дан файл целых чисел f1. Создайте два новых файла f2 и f3 из положительных и отрицательных чисел соответственно. Если какой – то из созданных файлов окажется пустым, сообщите об этом.
 
1. Числа Фибоначчи U0 ,U1 ,U2 ,… определяются следующим образом:
{U0=0, U1=1; Un=Un-1 - Un-2, n=2,3,4,...
Написать программу вычисления первого числа Фибоначчи, большего m (m>1), включающую рекурсивную функцию, которая основана на непосредственном использовании соотношения Un =Un-1 +Un-2
Код:
VAR
 m,u,u1,u2:WORD;
 i:BYTE;
BEGIN
 Write('m= ');
 ReadLn(m);
 u1:=0;
 u2:=1;
 Repeat
  u:=u1+u2;
  u1:=u2;
  u2:=u;
 Until u>m;
 WriteLn('u= ',u);
 ReadLn;
END.
2. Пусть дан файл целых чисел f1. Создайте два новых файла f2 и f3 из положительных и отрицательных чисел соответственно. Если какой – то из созданных файлов окажется пустым, сообщите об этом.
Код:
VAR
 file1,file2,file3:TEXT;
 n2,n3:WORD;
 a:INTEGER;
BEGIN
 Assign(file1,'D:\f1');
 ReSet(file1);
 Assign(file2,'D:\f2');
 ReWrite(file2);
 Assign(file3,'D:\f3');
 ReWrite(file3);
 n2:=0;
 n3:=0;
 Repeat
  Read(file1,a);
  if a>0 then
   begin
    write(file2,a,' ');
    inc(n2);
   end;
  if a<0 then
   begin
    write(file3,a,' ');
    inc(n3);
   end;
 Until EoF(file1);
 Close(file1);
 Close(file2);
 Close(file3);
 if n2=0 then
  WriteLn('F1 contains no positive values') else
 if n3=0 then
  WriteLn('F1 contains no negative values') else
 WriteLn('Finished!');
 ReadLn;
END.
Разумеется, пути к файлам могут быть изменены.
 
Назад
Сверху