Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
VZ27
0 / 0 / 1
Регистрация: 25.04.2015
Сообщений: 52
#1

Найдите ошибки и недочёты

02.10.2015, 01:00. Просмотров 194. Ответов 1
Метки нет (Все метки)

Программа должна выводить:
– номер варианта, назначение программы и ФИО автора;
– информационные сообщения о необходимости ввода данных;
– результаты работы программы в виде таблицы (см. Скриншот №1).

Программа должна состоять из основной части и двух подпрограмм:
1) процедура ввода данных (например, «Vvod»), требующая от пользователя ввести значения для формулы согласно варианту задания, например, A, B, C; программа не должна требовать от пользователя ввода значения X;
2) функция вычисления формулы (например, «CalcFormula»).

Логика основной части программы должна быть построена из следующих элементов:
1) оператор вызова процедуры ввода данных, в объявлении которой перечислены параметры-переменные; данная процедура должна потребовать от пользователя ввода констант (например, A, B, C), за исключением X;
2) оператор цикла (по выбору: WHILE, REPEAT или FOR), в каждой итерации которого:
– наращивается значение переменной X (например, от 5 до 9 с шагом 0.1);
– осуществляется вызов функции вычисления формулы (например, «CalcFormula») с указанием аргумента X, а также остальных констант, при необходимости; результат вычисления формулы записывается в переменную Y;
– обе переменные X и Y выводятся на экран с помощью Writeln.


Вроде бы всё хорошо сделал, код работает, выполняет задачу. Но остаётся чувство, что не все пункты соблюдены. Особенно с функцией что-то намудрил, ошибка какая-то вылазит (см. Скриншот №2).
Вообщем, кому не сложно, оцените выполнение работы и по возможности исправьте, то что не так.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
uses CRT;
procedure Vvod(var ValueA: Real; var ValueB: Real; var ValueC: Real);
begin
  Write('Введите a=');
  Readln(ValueA);
  Write('Введите b=');
  Readln(ValueB);
  Write('Введите c=');
  Readln(ValueC);
end;
 
function CalcFormula(h:real; y:real;  x:real; a:real; b:real; c:real): Real; 
begin
  h:=0.2;
  x:= 8;
  repeat
    y:=a*Ln(x)+b+c;
    writeln('|X=', x:0:1,'           | ', 'Y=', y:0:2,'                      |');
    X := X + h;
  until(X > 10);
end;
 
var h,y,X,A,B,C:Real;
begin
  Writeln('Вариант 8.');
  Writeln('Вычисление y=a+ln(x)+b+c на [8;10] c h=0.2.');
  Writeln('Автор: Ф.И.О..');
  Vvod(A,B,C);
  Writeln('------------------------------------------------');
  Writeln('|Значение функции в интервале [4;9] с шагом 0.2|');
  Writeln('------------------------------------------------');
  CalcFormula(h,y,X,A,B,C);
  Writeln('------------------------------------------------');
end.
0
Миниатюры
Найдите ошибки и недочёты   Найдите ошибки и недочёты  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2015, 01:00
Ответы с готовыми решениями:

не работает программа)найдите ошибки...
Program Control_1; var x,y: integer; z: real; begin ClrScr; x:=5; y:=7;...

Найдите ошибки в вычислительных процессах.
Пожалуйста, найдите ошибки. Задача: Вычислить p=x^3+ln(x+y)-|y|, если y<>0...

Помогите пожалуйста найти недочёты
Паскаль, помогите пожалуйста найти недочёты program nik; type massiv= array...

Найдите и объясните ошибки в приведенных операторах, если они есть
Найдите и объясните ошибки в приведенных операторах, если они есть. в) if x < >...

Исправить ошибки и недочёты в коде
Задание : Веб-страница содержит форму с текстовым полем длиной до 20 символов....

1
JuriiMW
1934 / 1038 / 1555
Регистрация: 10.12.2014
Сообщений: 3,827
02.10.2015, 05:45 #2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
procedure Vvod(var ValueA, ValueB, ValueC: Real);
begin
  Write('Введите a='); Readln(ValueA);
  Write('Введите b='); Readln(ValueB);
  Write('Введите c='); Readln(ValueC);
end;
 
function CalcFormula(a, b, c, X : Real): Real := a*Ln(x)+b+c;
 
const
  h = 0.2;
  Xstart  = 8;
  Xfinish = 10;
var
  X : Real;
  A, B, C:Real;
begin
  Writeln('Вариант 8.');
  Writeln('Вычисление y=a+ln(x)+b+c на [8;10] c h=0.2.');
  Writeln('Автор: Ф.И.О..');
  Vvod(A,B,C);
  Writeln('------------------------------------------------');
  Writeln('Значение функции в интервале [', Xstart, ';', Xfinish, '] с шагом ', h);
 
  Writeln('------------------------------------------------');
  X := Xstart;
  repeat
    writeln('|  X = ', x:9:5,'  |  Y = ', CalcFormula(A,B,C, X):9:5,'  |');
    X += h;
  until X > Xfinish;
  Writeln('------------------------------------------------');
end.
Переменная Y, по сути, не нужна…
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2015, 05:45

Найдите ошибки
class ABC{ int a=3; int b; int c; public: ABC(int n=1) {b=n;} mul()...

Найдите ошибки!
Вот мой код создания экрана на OpenGL GLUT. #if !defined(WIN32) #define...

Найдите ошибки
Народ, я для собственного саморазвития начал изучать VB (сказали самый легкий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru