Кто помнит Pascal?

Страницы: 1 2  ... 7  ОТВЕТИТЬ НОВАЯ ТЕМА
parazit37 21 дек 2015 в 18:03
Шутник  •  На сайте 17 лет
Сообщений: 38
211
Тут такое дело, попросила меня знакомая написать несколько программок (контрольная в институте) на "паскале". Я его уже давненько не видел. но стало интересно и я согласился. В итоге преподаватель, проверяя мой код, вздыхала и называла меня дураком (естессно, заочно, сдавала к/р знакомая), хотя зачет поставила. Мне дико интересно, я действительно всё забыл или на меня наговаривают? Кто в теме, напишите свое мнение о коде.

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

Кто помнит Pascal?
Yap 04.05.2026 - 15:48
Продам слона  •  На сайте 21 год
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.
Разработать, ввести в ЭВМ и отладить программу для расчёта полного сопротивления участка электрической цепи, состоящего из 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 дек 2015 в 18:07
Шутник  •  На сайте 11 лет
33
А как же Бейсик???
Он раньше был!!
grably 21 дек 2015 в 18:08
Анус Ректальный  •  На сайте 13 лет
29
ТС прости меня, жопу криворукую! Нечаянно минуc влепила faceoff.gif

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

Это сообщение отредактировал grably - 21 дек 2015 в 18:08
yura1208 21 дек 2015 в 18:08
заЯПатый  •  На сайте 12 лет
118
Я нихуя не понял, но на всякий случай позеленил...
SuperYago 21 дек 2015 в 18:11
Весельчак  •  На сайте 12 лет
14
until. UNTIL. О, боги! Индийские кодеры плачут от зависти. По ходу у ТС мания величия.

Это сообщение отредактировал SuperYago - 21 дек 2015 в 18:12
draggon58 21 дек 2015 в 18:11
Весельчак  •  На сайте 10 лет
10
Паскаль, к сожалению, не знаю! Так что чем могу!

Scat 21 дек 2015 в 18:12
Приколист  •  На сайте 11 лет
40
Фортран забыли с.кины дети
АндрейЧер 21 дек 2015 в 18:15
Хохмач  •  На сайте 12 лет
7
Цитата (yura1208 @ 21.12.2015 - 18:08)
Я нихуя не понял, но на всякий случай позеленил...

agree.gif
Я-то по продвинутей буду - слово "end" знаю. idea.gif
Stipo74 21 дек 2015 в 18:15
Балагур  •  На сайте 11 лет
7
Ну про Бейсик и Фортран уже написали, а так код правильный.
Vitin 21 дек 2015 в 18:15
Приколист  •  На сайте 12 лет
0
Может ей почерк принтера, на котором печатала твоя знакомая, не понравился?? Ну типа с трудом смогла прочитать.
Мои каракули тоже никто не может дешифровать)
parazit37 автор 21 дек 2015 в 18:16
Шутник  •  На сайте 17 лет
8
Цитата (SuperYago @ 21.12.2015 - 18:11)
until. UNTIL.  О, боги! Индийские кодеры плачут от зависти. По ходу у ТС мания величия.

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

Это сообщение отредактировал parazit37 - 21 дек 2015 в 18:17
Marius163 21 дек 2015 в 18:18
Приколист  •  На сайте 11 лет
4
COBOL забыли!
BlackAdder 21 дек 2015 в 18:18
Шутник  •  На сайте 16 лет
7
Цитата (parazit37 @ 21.12.2015 - 18:03)
попросила меня знакомая написать несколько программок

а потом дала fucking.gif ?
(код и правда ужасен :) еще и GoTo не хватает )
kaa84 21 дек 2015 в 18:19
Ярила  •  На сайте 12 лет
16
на ассемблере давай fear.gif
edelveisau 21 дек 2015 в 18:21
Приколист  •  На сайте 13 лет
-8
Writeln и Readln команды вроде не соответствуют, хотя может и не прав. Паскаль в школе учил это было 20 лет назад..... А так да! Basic наше все if go to else. rulez.gif

Это сообщение отредактировал edelveisau - 21 дек 2015 в 18:23
Svarogok 21 дек 2015 в 18:22
капитан  •  На сайте 12 лет
20
Оформление странноватое конечно, но алгоритм верный.

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 дек 2015 в 18:22
Ярила  •  На сайте 11 лет
0
ТС, я знаю Pascal, но вот не пойму где это условие в задаче поставлено:
until (cos(y*z)<>0) and (sin(Pi/3+y)<>0); ??
а, вверху уже сказали про проверку division by zero

Это сообщение отредактировал maddread - 21 дек 2015 в 18:24
Spremuta 21 дек 2015 в 18:23
Una spremuta per favore!  •  На сайте 13 лет
12
Если честно, то первый раз вижу, как углы умножают друг на друга. В этом физический смысл есть вообще?
Или Z - не угол?

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

Это сообщение отредактировал Spremuta - 21 дек 2015 в 18:29
Инсэйн 21 дек 2015 в 18:23
Рядовой Шутник  •  На сайте 14 лет
1
вроде прям говнокода не видно
Bobby2002 21 дек 2015 в 18:24
Шутник  •  На сайте 14 лет
2
Это учебная задача? Тогда где комменты?

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

Это сообщение отредактировал Bobby2002 - 21 дек 2015 в 18:26
SkyBB 21 дек 2015 в 18:24
Шутник  •  На сайте 11 лет
5
Ужас. Вводим кол-во сопротивлений равным 0 и получаем деление на 0.
Garynych 21 дек 2015 в 18:24
Приколист  •  На сайте 11 лет
1
Доебаться по коду можно много до чего, если по мелочам; по делу особо не прикопаешься. По-хорошему, если код компилируется и не валится ни на каких значениях на все остальное можно класть.
Так-то нормальный код без изысков.

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

Это сообщение отредактировал Garynych - 21 дек 2015 в 18:27
parazit37 автор 21 дек 2015 в 18:25
Шутник  •  На сайте 17 лет
2
Цитата (maddread @ 21.12.2015 - 18:22)
ТС, я знаю Pascal, но вот не пойму где это условие в задаче поставлено:
until (cos(y*z)<>0) and (sin(Pi/3+y)<>0); ??
а, вверху уже сказали про проверку division by zero

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

 
 

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



Наверх