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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 21:55   #1
---Demon---
Пользователь
 
Регистрация: 03.04.2013
Сообщений: 22
По умолчанию Нужно дописать прогу!

Я просто ни как не понимаю как тут надо уравнение написать))

Написать программу, которая по значениям аргумента Xi вычисляет значения
функции Yi, заданной в виде графика. Значения функции вычисляются для
аргумента, изменяющегося в заданных пределах с заданным шагом.
С клавиатуры вводятся:
Xn - начальное значение аргумента;
Xk - конечное значение аргумента;
dX - шаг изменения аргумента.
Результаты вычислений вывести в виде таблицы, состоящей из двух столбцов:
значений аргумента Xi и соответствующих им значений функции Yi. Таблица
должна иметь заголовочную строку.
Должна быть реализована возможность многократного выполнения
программы без ее перезапуска.

Program Grafic;
uses crt;
Var X,Xn,Xk,dX,y:real;
Begin clrscr;
Write('Xn=');
read(Xn);
Write('Xk=');
read(Xk);
Write('dX=');
read(dX);
X:=Xn;
While X<=Xk do begin;
If x<=-3 then begin;
y:=3;
Writeln(x:2:2,y:2:2);
end;
If (x<=3) and (x<0) then begin y:=sqrt(9-x*x);
Writeln(x:2:2,y:2:2);
end;
If (x<=3) and (x>0) then begin y:=sqrt(9-x*x);
Writeln(x:2:2,y:2:2);
end;
If (x>=3) and (x<6) then begin y:=;
Writeln(x:2:2,y:2:2);
end;
If (x>=6) and (x<11) then begin y:=;
Writeln(x:2:2,y:2:2);
end;
x:=x+dx;
end;
readln;
readkey;
end;

И можете проверить а то может я что то накасячил)

Последний раз редактировалось ---Demon---; 03.04.2013 в 21:58.
---Demon--- вне форума
Старый 03.04.2013, 22:09   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
function y(x: real): real;
const
    NAN = -1000;
begin
    if x <= -7 then
        y := NAN
    else if x <= -3 then
        y := 3
    else if x <= 3 then
        y := 3 - sqrt(9 - x * x)
    else if x <= 6 then
        y := 9 - 2 * x
    else if x <= 11 then
        y := x - 9
    else
        y := NAN;
end;
Вызываете функцию для требуемого x.
Не забывайте использовать кнопочку Решетка # для оформления кода.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 03.04.2013 в 22:47.
BDA вне форума
Старый 03.04.2013, 22:34   #3
---Demon---
Пользователь
 
Регистрация: 03.04.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
function y(x: real): real;
const
    NAN = -1000;
begin
    if x <= -7 tnen
        y := NAN
    else if x <= -3 then
        y := 3
    else if x <= 3 then
        y := 3 - sqrt(9 - x * x)
    else if x <= 6 then
        y := 9 - 2 * x
    else if x <= 11 then
        y := x - 9
    else
        y := NAN;
end;
Вызываете функцию для требуемого x.
Не забывайте использовать кнопочку Решетка # для оформления кода.
Что то я не совсем понял куда это вписать?
Пробовал между строк
While X<=Xk do begin;
.......
end;
x:=x+dx;
end;
readln;
readkey;
end;
но не получилось!
не понимаю
---Demon--- вне форума
Старый 03.04.2013, 22:48   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
Program Grafic;
uses crt;
Var
    X,Xn,Xk,dX: real;
    
function y(x: real): real;
const
    NAN = -1000;
begin
    if x < -7 then
        y := NAN
    else if x <= -3 then
        y := 3
    else if x <= 3 then
        y := 3 - sqrt(9 - x * x)
    else if x <= 6 then
        y := 9 - 2 * x
    else if x <= 11 then
        y := x - 9
    else
        y := NAN;
end;
 
Begin
    clrscr;
    Write('Xn=');
    read(Xn);
    Write('Xk=');
    read(Xk);
    Write('dX=');
    read(dX);
    X:=Xn;
    While X<=Xk do
    begin
        writeln(x:0:10,' ',y(x):0:10);
        x:=x+dx;
    end;
    readln;
    readkey;
end.
Пока не реализованы:
Таблица должна иметь заголовочную строку.
Должна быть реализована возможность многократного выполнения программы без ее перезапуска.

UPD
Пожалуйста
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 03.04.2013 в 23:10.
BDA вне форума
Старый 03.04.2013, 22:51   #5
---Demon---
Пользователь
 
Регистрация: 03.04.2013
Сообщений: 22
По умолчанию

Большое большое спасибо)
---Demon--- вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно дописать прогу по поиску подстроки в строке, т.к. возникли небольшие проблемы с типом переменных juicy_2011 Помощь студентам 7 21.07.2011 21:26
не могу прогу дописать! ATJ Общие вопросы C/C++ 0 18.04.2010 19:45
Дописать прогу. vetalij Общие вопросы C/C++ 9 16.10.2009 23:37