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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2020, 23:45   #1
suggestion
 
Регистрация: 30.09.2020
Сообщений: 7
Вопрос Pascal ABC, procedure и function.

Разработать алгоритм решения задачи, реализовать его на языке Pascal в виде отдельной функции. Диалог с пользователем (ввод исходных данных и вывод результата) также оформить в виде отдельных функций.
Предприниматель, начав дело, взял кредит размером k рублей под p процентов годовых и вложил его в своё дело. По прогнозам, его дело должно давать прибыль r рублей в год. Сможет ли он накопить сумму, достаточную для погашения кредита, и
если да, то через сколько лет?

PS должно быть 3 отдельных функции или процедуры для ввода данных, вычисления и вывода результата

вот программа без procedure и fucntion
Код:
uses crt;
var k,r:longint;
     p:byte;
     sr:longint;{сумма прибыли}
    v:integer;{количество лет}
    sk:real;{сумма кредита с нарастающими выплатами процентов}
begin
clrscr;
write('Summa kredita k=');
readln(k);
write('Procent p=');
readln(p);
write('Pribyl r=');
readln(r);
if r<=k*p/100 then writeln('Не сможет!') else{если прибыль меньше суммы по процентам, то нет, иначе считаем}
  begin
   v:=0;sr:=0;sk:=k;{лет=0, сумма прибыли=0, сумма кредита=кредиту}
   while sr<=sk do{пока сумма прибыли не превыит сумму кредита}
     begin
      v:=v+1;{добавляем год}
      sr:=sr+r;{считаем сумму прибыли}
      sk:=sk+(k*p)/100;{считаем сумму кредита}
    end;
   write('Сможет, через ',v,' лет');
 end;
readln
end.
suggestion вне форума Ответить с цитированием
Старый 01.10.2020, 10:14   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Мне думается, что зря проценты заданы как байт, а k,r:longint;. По жизни бывает, к примеру, 3,5%. И k,r в процессе расчёта не будут целыми. Тогда функция получилась бы простой.
Код:
var k,r,p:double ;
function input_data (prompt:str) : double ;
var tmp: double ;
begin 
  write(prompt);
  readln(tmp);
  input_data := tmp
end ;
..........................
k := input_data('Summa kredita k=');
Ну а дальше в том же духе, ручками.

Последний раз редактировалось digitalis; 01.10.2020 в 10:20.
digitalis вне форума Ответить с цитированием
Старый 02.10.2020, 23:40   #3
Petros-20
Пользователь
 
Регистрация: 14.03.2020
Сообщений: 45
По умолчанию

Для такой задачи, процедуры и функции не нужны. Слишком всё просто. Но если очень надо, просто напишите три пустые процедуры
procedure Vvod;
procedure Proc;
procedure Vivod;
и тупо перенесите в них куски вашего кода.
Petros-20 вне форума Ответить с цитированием
Старый 03.10.2020, 11:28   #4
suggestion
 
Регистрация: 30.09.2020
Сообщений: 7
По умолчанию

Petros-20, я просто не понимаю как в процедуру вставить условие
suggestion вне форума Ответить с цитированием
Старый 03.10.2020, 18:23   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Хоть я не Petros-20, но ответ таков: как и в любом другом месте программы. Подпрограммы и функции - это тот же самый код, что и главная программа, но обрамлённый входом и выходом по согласованным правилам.
А если ответ ожидался конкретно от Petros-20 - можешь мой пост не читать. Ввод я тебе уже расписал.

Последний раз редактировалось digitalis; 03.10.2020 в 18:27.
digitalis вне форума Ответить с цитированием
Старый 04.10.2020, 23:16   #6
suggestion
 
Регистрация: 30.09.2020
Сообщений: 7
По умолчанию

suggestion, можете пожалуйста показать на примере? искал в интернете вопрос на эту тему ничего не нашел
suggestion вне форума Ответить с цитированием
Старый 05.10.2020, 10:49   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

" Я спросил suggestion'а..."
suggestion

Тихо сам с собою ?
digitalis вне форума Ответить с цитированием
Старый 05.10.2020, 12:42   #8
Petros-20
Пользователь
 
Регистрация: 14.03.2020
Сообщений: 45
По умолчанию

digitalis, не на то пёрышко жмякнул человек, ну бывает :-)
Petros-20 вне форума Ответить с цитированием
Старый 05.10.2020, 12:51   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

В общем, покажи ему на примере - я бы и сам, но не знаю что ему нужно показать
digitalis вне форума Ответить с цитированием
Старый 06.10.2020, 01:02   #10
Petros-20
Пользователь
 
Регистрация: 14.03.2020
Сообщений: 45
По умолчанию

Код:
PROGRAM P;
BEGIN
  raz;
  dva;
  tri;
  tshetyre;
  pyat;
  shest;
  sem;
  vosem
END.


PROGRAM P_with_procedure;
PROCEDURE Proc;
  Begin
    tri;
    tshetyre;
    pyat;
  End;
BEGIN
  raz;
  dva;

  Proc;

  shest;
  sem;
  vosem
END.
Petros-20 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить прогу на procedure and function users1 Помощь студентам 3 08.02.2017 16:59
Function and procedure darm Паскаль, Turbo Pascal, PascalABC.NET 2 10.03.2016 20:59
function, procedure (выручите) Woxx Помощь студентам 5 20.10.2010 13:14
function procedure Toxa Microsoft Office Access 1 28.11.2007 18:32