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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2017, 22:49   #1
qqq``
Пользователь
 
Регистрация: 05.09.2017
Сообщений: 26
По умолчанию Функция

Даны два значения G,F. F-не изменяется, G-начальное значение диапазона, найти функцию Z при условии если G>F то Z:=(F+G)div2 ,иначе Z:=F*G*2. К значению G при каждом прохождении цикла прибавляется шаг. Цикл с параметром обязательно .

Криво-косо идею написал ,но плохо понимаю программы с функцией


Код:
program project1;
uses Crt,FIleUtil;
var G,F:integer; i,p,d,j,h:integer;
function Z(G, F: integer): integer;
   begin
     If G>F then
         Z:=(G+F)div 2
           else
             z:=G*F*2;
             end ;
begin
  writeln (utf8ToConsole('Введите значение F'));//входной параметр
  readln (F);
  writeln (utf8ToConsole('Введите начальное значение диапазона G'));
  readln (P);
  writeln (utf8ToConsole('Введите конечное значение диапазона G'));
  readln (D);
  writeln (utf8ToConsole('Введите шаг диапазона J '));
  readln (J);
   h:=(D-P) div J; //по данной формуле вычисляется сколько раз будет выполнятся цикл
   G:=P;
  for i:=1 to h do //Цикл с параметром,чтобы автоматически вычислялся диапазон
     begin
       writeln (utf8ToConsole('Итерация='),i,' G=',G);
           Writeln (Z(G, F));
           end;
      G:=P+J*i;//Формула нужна для того, чтобы каждый раз к значению G прибавлялся шаг J.
      readln();
  writeln (utf8ToConsole('Нажмите enter для завершения программы...'));
  readln ();
end;


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.09.2017 в 16:05.
qqq`` вне форума Ответить с цитированием
Старый 29.09.2017, 15:09   #2
Heilagr
 
Регистрация: 29.09.2017
Сообщений: 4
По умолчанию

У вас не правильно указан цикл. Цикл должен идти от начала диапазона до конца с шагом h
Код:
For i:=P to D do
           Begin
              ...//вычисление вашей функции
              i:=i+h  //переход на следующий шаг
           end;
и измените тип данных h с целочисленного на дробное.
h вычисляется вот так:
Код:
h=(D-P)/J

Последний раз редактировалось Heilagr; 29.09.2017 в 15:15.
Heilagr вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напишите функцию calculateArea. -Если функция принимает одно число "a" - она возвращает площадь квадрата (a*a). -Если функция принимает два числа "a, b" - она возвращает площадь пр Skeydzh Фриланс 4 04.07.2017 22:42
функция _Marchel_ Паскаль, Turbo Pascal, PascalABC.NET 6 26.11.2015 21:42
Функция KuckaMAXHATKA Общие вопросы C/C++ 1 22.02.2011 01:00
Функция в VB asd48 Помощь студентам 1 25.12.2008 23:29
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50