HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail |
|
|
program proba; uses crt; var x,y,z,k,a:real; begin clrscr; writeln('введите число'); read(x); y:= (sqr(x)-4*x+1)/(abs(x)+1); z:= (100*exp(5*ln(x))-40*exp(3*ln(x))-1)/(sqr(sin(x))+cos(sqr(x))+1); a:= sin(x)/cos(x)+sqr(cos(x)/sin(x))+exp(9*ln(1.1)); k:= exp(1/5*ln(a)); writeln; writeln('y=',round(y),'z=',round(z),'k=',round(k)); end. |
Комментарии Модератор. Смотри комментарий предыдущего примера. to top
|
program proba; { author Valeriy } uses crt; var a, b, c1, c2, c3, r1, r2, p:real; begin clrscr; writeln('введите два числа через enter'); readln(a); readln(b); c1:= a+b; c2:= abs(a)+abs(b); c3:=abs(a+b); r1:= a-b; r2:= abs(a)-abs(b); p:=a*b; writeln; writeln('c1=', c1:5:2, 'c2=', c2:5:2, 'c3=', c3:5:2, 'r1=', r1:5:2, 'r2=', r2:5:2, 'p=', p:5:2); end. |
Комментарии Модератор. Явных ошибок тут нет. Замечания по оформлению. Здесь вводятся два числа. Я бы их сразу и напечатал. Вообще исходные данные лучше всегда выводить тоже. Далее. Поскольку вывод программы невелик, пишите лучше все с новой строки. И пишите ЧТО вы печатаете. с1 не говорит пользователю ничего. Напишите "сумма"! Вместо с2 - "сумма модулей" и т.д. to top
|
program Tabff; uses crt; label m; var x, y, a, b, h:real; i:integer; begin clrscr; m:readln(a,b,h); x:=a; if h=0 then goto m else if a>b then goto m else for i:=1 to trunc((b-a)/h) do begin y:=sin(x); writeln('x=',x:6:2,'y=',y:6:2); x:=x+h; end; readln; end. |
Комментарии 1. Обычно после отладки программа компилируется и сохраняется в специальном каталоге исполняемых файлов. После этого их время от времени запускают, чтобы произвести расчеты. Данная программа при запуске на исполнение очистит экран и будет ожидать ввода 3 чисел. Причем, таких, что первое должно быть меньше второго, а третье ненулевое. Ну откуда человек запустивший программу может это знать? Уверяю вас, через месяц вы и сами не вспомните, что должна делать та или иная программа, если в ней нет поясняющих печатей и комментариев... Тем более надо говорить пользователю, в чем он ошибся, если он вводит неверные данные. Вас не прикалывают сайты, которые пишут вам "данные введены неверно"? И все. Пойди пойми, в чем неверность и что надо вводить!? Так что будтье разговорчивее. 2. Я не могу сказать, что в Паскале метки использовать нельзя. Но делать этого настоятельно не рекомендуется. Любая программа на Паскале может обойтись без меток! Посему строки 8-9 я бы заменил на следующие: writeln(' Function y=sin(x).'); repeat write('Input [a,b];h '); readln(a,b,h); if (a>=b) writeln('Wrong data. Must be a<b.'); if (h<=0) writeln('Wrong data. Must be h>0.'); if (h>=b-a) writeln('Wrong data. Must be h<b-a.'); until (b>a) and (h>0) and (b-a>h); x:=a; 3. Рассмотрим пример: когда a,b,h равны соответсвенно - 0, 1, 0.2 В этом случае trunc((1-0)/0.2) => 5. Сдедовательно будут рассчитаны точки: 0, 0.2, 0.4, 0.6, 0.8. Значение функции на правом конце при b=1 рассчитано не будет. Надо добавить одно выполнение цикла. 10 строка: for i:=0 to trunc((b-a)/h) do или for i:=1 to 1+trunc((b-a)/h) do. Или использовать while .. do/ repeat .. until. to top
|
01: program Tabff; 02: uses crt; 03: label m; 04: var x, y, a, b, h:real; 05: begin 06: clrscr; 07: m:readln(a,b,h); x:=a; 08: if h=0 then goto m else if a>b then goto m else 09: while X<b do 10: begin 11: y:=sin(x); 12: writeln('x=',x:6:2,'y=',y:6:2); 13: x:=x+h; 14: end; 15: readln; 16: end. |
HOME EXAMPLES |
|