Кто помнит Pascal?

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (7) [1] 2 3 ... Последняя »  К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
parazit37
21.12.2015 - 18:03
Статус: Offline


Шутник

Регистрация: 6.12.08
Сообщений: 38
211
Тут такое дело, попросила меня знакомая написать несколько программок (контрольная в институте) на "паскале". Я его уже давненько не видел. но стало интересно и я согласился. В итоге преподаватель, проверяя мой код, вздыхала и называла меня дураком (естессно, заочно, сдавала к/р знакомая), хотя зачет поставила. Мне дико интересно, я действительно всё забыл или на меня наговаривают? Кто в теме, напишите свое мнение о коде.

Составить программу для вычисления

Кто помнит Pascal?
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
parazit37
21.12.2015 - 18:03
Статус: Offline


Шутник

Регистрация: 6.12.08
Сообщений: 38
Uses crt, math;
Var
f, x, y, z: real;
Begin
clrscr;
repeat
write('Введите x: ');readln(x);
write('Введите y: ');readln(y);
write('Введите z: ');readln(z);
until (cos(y*z)<>0) and (sin(Pi/3+y)<>0);
if cos(x)<tan(y*z) then
f:=exp(sqr(sin(x*y))+z)
else
f:=cotan(Pi/3+y);
writeln;
writeln('f=',f);
readln;
End.
 
[^]
parazit37
21.12.2015 - 18:05
Статус: Offline


Шутник

Регистрация: 6.12.08
Сообщений: 38
Разработать, ввести в ЭВМ и отладить программу для расчёта полного сопротивления участка электрической цепи, состоящего из m известных сопротивлений, соединённых параллельно.


Uses crt;
Var
danet: byte;
m, i: longword;
res, res_poln, znam: real;
Begin
clrscr;
repeat
writeln('Сопротивления одинаковы?');
writeln('1) Да');
writeln('2) Нет');
readln(danet);
writeln;
until (danet=1) or (danet=2);
if danet=1 then
begin
write('Укажите номинал сопротивления (Ом): ');readln(res);
write('Укажите количество сопротивлений: ');readln(m);
writeln;
res_poln:=res/m;
writeln('Полное сопротивление равно ',res_poln,' Ом');
end;
if danet=2 then
begin
znam:=0;
write('Укажите количество сопротивлений: ');readln(m);
writeln;
for i:=1 to m do
begin
write('Укажите номинал ',i,'-го сопротивления (Ом): ');readln(res);
znam:=znam+1/res;
end;
res_poln:=1/znam;
writeln;
writeln('Полное сопротивление равно ',res_poln,' Ом');
end;
writeln;
writeln('<Для выхода нажмите "Enter">');
readln;
End.
 
[^]
Sonnik10
21.12.2015 - 18:07
33
Статус: Offline


Шутник

Регистрация: 25.06.14
Сообщений: 30
А как же Бейсик???
Он раньше был!!
 
[^]
grably
21.12.2015 - 18:08
29
Статус: Offline


Анус Ректальный

Регистрация: 21.03.13
Сообщений: 3029
ТС прости меня, жопу криворукую! Нечаянно минуc влепила faceoff.gif

А Паскаль помню учили когда-то, но мляяяя... Давнооооо это было.... old.gif

Это сообщение отредактировал grably - 21.12.2015 - 18:08
 
[^]
yura1208
21.12.2015 - 18:08
118
Статус: Offline


заЯПатый

Регистрация: 25.07.13
Сообщений: 610
Я нихуя не понял, но на всякий случай позеленил...
 
[^]
SuperYago
21.12.2015 - 18:11
14
Статус: Offline


Весельчак

Регистрация: 20.07.13
Сообщений: 159
until. UNTIL. О, боги! Индийские кодеры плачут от зависти. По ходу у ТС мания величия.

Это сообщение отредактировал SuperYago - 21.12.2015 - 18:12
 
[^]
draggon58
21.12.2015 - 18:11
10
Статус: Offline


Весельчак

Регистрация: 1.09.15
Сообщений: 120
Паскаль, к сожалению, не знаю! Так что чем могу!

 
[^]
Scat
21.12.2015 - 18:12
40
Статус: Offline


Приколист

Регистрация: 7.10.14
Сообщений: 208
Фортран забыли с.кины дети
 
[^]
АндрейЧер
21.12.2015 - 18:15
7
Статус: Offline


Хохмач

Регистрация: 7.07.13
Сообщений: 613
Цитата (yura1208 @ 21.12.2015 - 18:08)
Я нихуя не понял, но на всякий случай позеленил...

agree.gif
Я-то по продвинутей буду - слово "end" знаю. idea.gif
 
[^]
Stipo74
21.12.2015 - 18:15
7
Статус: Offline


Балагур

Регистрация: 18.11.14
Сообщений: 926
Ну про Бейсик и Фортран уже написали, а так код правильный.
 
[^]
Vitin
21.12.2015 - 18:15
0
Статус: Offline


Приколист

Регистрация: 14.02.14
Сообщений: 288
Может ей почерк принтера, на котором печатала твоя знакомая, не понравился?? Ну типа с трудом смогла прочитать.
Мои каракули тоже никто не может дешифровать)
 
[^]
parazit37
21.12.2015 - 18:16
8
Статус: Offline


Шутник

Регистрация: 6.12.08
Сообщений: 38
Цитата (SuperYago @ 21.12.2015 - 18:11)
until. UNTIL.  О, боги! Индийские кодеры плачут от зависти. По ходу у ТС мания величия.

Изучал его давно, на идеал и не претендую ) Хоть напиши, что конкретно не так, мне ж интересно.

Это сообщение отредактировал parazit37 - 21.12.2015 - 18:17
 
[^]
Marius163
21.12.2015 - 18:18
4
Статус: Offline


Приколист

Регистрация: 23.05.14
Сообщений: 336
COBOL забыли!
 
[^]
BlackAdder
21.12.2015 - 18:18
7
Статус: Offline


Шутник

Регистрация: 20.12.09
Сообщений: 28
Цитата (parazit37 @ 21.12.2015 - 18:03)
попросила меня знакомая написать несколько программок

а потом дала fucking.gif ?
(код и правда ужасен :) еще и GoTo не хватает )
 
[^]
kaa84
21.12.2015 - 18:19
16
Статус: Offline


Ярила

Регистрация: 28.07.13
Сообщений: 3196
на ассемблере давай fear.gif
 
[^]
edelveisau
21.12.2015 - 18:21
-8
Статус: Offline


Приколист

Регистрация: 5.12.12
Сообщений: 210
Writeln и Readln команды вроде не соответствуют, хотя может и не прав. Паскаль в школе учил это было 20 лет назад..... А так да! Basic наше все if go to else. rulez.gif

Это сообщение отредактировал edelveisau - 21.12.2015 - 18:23
 
[^]
Svarogok
21.12.2015 - 18:22
20
Статус: Offline


капитан

Регистрация: 12.05.13
Сообщений: 727
Оформление странноватое конечно, но алгоритм верный.

Program Sum;
Uses crt, math; {задаем модули}

Var
f, x, y, z: Real; {описываем переменные}

Begin
ClrScr;

Repeat
Write('Введите x: ');ReadLn(x);
Write('Введите y: ');ReadLn(y); {вводим значение переменных}
Write('Введите z: ');ReadLn(z);
Until (cos(y*z)<>0) and (sin(Pi/3+y)<>0); {условие не деления на ноль}

if cos(x)<tan(y*z) then f:=exp(sqr(sin(x*y))+z) else f:=cotan(Pi/3+y);
{собственно само вычисление}
WriteLn;
WriteLn('f=',f);
ReadLn;
End.
 
[^]
maddread
21.12.2015 - 18:22
0
Статус: Offline


Ярила

Регистрация: 20.07.14
Сообщений: 2420
ТС, я знаю Pascal, но вот не пойму где это условие в задаче поставлено:
until (cos(y*z)<>0) and (sin(Pi/3+y)<>0); ??
а, вверху уже сказали про проверку division by zero

Это сообщение отредактировал maddread - 21.12.2015 - 18:24
 
[^]
Spremuta
21.12.2015 - 18:23
12
Статус: Offline


Una spremuta per favore!

Регистрация: 16.11.12
Сообщений: 844
Если честно, то первый раз вижу, как углы умножают друг на друга. В этом физический смысл есть вообще?
Или Z - не угол?

Минусы - это хорошо. Мне на них пофигу. А объяснить по существу кто-нибудь сможет?

Это сообщение отредактировал Spremuta - 21.12.2015 - 18:29
 
[^]
Инсэйн
21.12.2015 - 18:23
1
Статус: Offline


Рядовой Шутник

Регистрация: 8.01.12
Сообщений: 322
вроде прям говнокода не видно
 
[^]
Bobby2002
21.12.2015 - 18:24
2
Статус: Offline


Шутник

Регистрация: 29.10.11
Сообщений: 34
Это учебная задача? Тогда где комменты?

А в чем причина использования repeat .. Until в первом примере? И откуда условие выхода?
Во втором примере есть шанс деления на ноль, проверяй переменные
Паскаль не поддерживает UTF 8, поэтому все принты на английском
А как в оригинале стилистика: уступы, расстояния между функциональными блоками?

Это сообщение отредактировал Bobby2002 - 21.12.2015 - 18:26
 
[^]
SkyBB
21.12.2015 - 18:24
5
Статус: Offline


Шутник

Регистрация: 27.12.14
Сообщений: 41
Ужас. Вводим кол-во сопротивлений равным 0 и получаем деление на 0.
 
[^]
Garynych
21.12.2015 - 18:24
1
Статус: Offline


Приколист

Регистрация: 18.06.14
Сообщений: 271
Доебаться по коду можно много до чего, если по мелочам; по делу особо не прикопаешься. По-хорошему, если код компилируется и не валится ни на каких значениях на все остальное можно класть.
Так-то нормальный код без изысков.

Сразу не заметил - есть такой косяк:
Цитата
Ужас. Вводим кол-во сопротивлений равным 0 и получаем деление на 0.


Это сообщение отредактировал Garynych - 21.12.2015 - 18:27
 
[^]
parazit37
21.12.2015 - 18:25
2
Статус: Offline


Шутник

Регистрация: 6.12.08
Сообщений: 38
Цитата (maddread @ 21.12.2015 - 18:22)
ТС, я знаю Pascal, но вот не пойму где это условие в задаче поставлено:
until (cos(y*z)<>0) and (sin(Pi/3+y)<>0); ??
а, вверху уже сказали про проверку division by zero

Это область определения тангенса и котангенса
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 34204
0 Пользователей:
Страницы: (7) [1] 2 3 ... Последняя » [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх