Кто помнит Pascal?

Страницы: 1 ...  6 7  ОТВЕТИТЬ НОВАЯ ТЕМА
LazYap 22 дек 2015 в 09:24
Ярила  •  На сайте 15 лет
2
да нормальные алгоритмы получились же.
можно было конечно и процедурку вкинуть, но это уже лишнее.
а вот оформлением самого кода должна была знакомая озаботится.
тс тут вовсе нипричем.
и да. - БЛЯЯЯЯЯЯ - и это потом пойдет в институт???
тс, плюнь в свою знакомую - если не может/не умеет, то и нехуй лезть туда, куда не тянет мозгом.
Граф 22 дек 2015 в 10:27
Тысяча чертей!!  •  На сайте 17 лет
1
Посмотрел программу, узнал кучу давно забытых операторов и функций shum_lol.gif
Экурт 22 дек 2015 в 10:32
Ярила  •  На сайте 11 лет
0
Цитата (Sonnik10 @ 21.12.2015 - 23:07)
А как же Бейсик???
Он раньше был!!

А Fortran почему не вспомнил?
al9x 22 дек 2015 в 10:37
Приколист  •  На сайте 14 лет
4
Код вполне рабочий, но исполнение корявенькое. Если так и задумано - молодца! На троечку потянет, исключительно потому, что работает почти как надо.

Задача 1.
Функции sin и exp, не требуют вызова библиотеки math, а консольная программа не требует вызова crt.
Исход "бесконечность", почему-то обойдён вниманием.
Ввод данных по until с условием допустимости данных - сурово. Результатом ввода недопустимых данных в адекватной программе должно быть сообщение об этом, а не "введите данные ещё раз".
Задача по теме "Функции", скорее всего должна решаться через самописную функцию которая вызывается из основного модуля программы.

Задача 2.
Возможно нужно решение с использованием массивов, решение вашим способом снижает точность расчёта для набора разных сопротивлений, и создаёт впечатление, что массивы вы не знаете.
Отдельные конструкции if для каждого значения danet - возможно признак плохого понимания работы конструкции if ... else ..., при выборе одного из двух исходов достаточно одной конструкции.

Как-то так.

Это сообщение отредактировал al9x - 22 дек 2015 в 10:41
Spremuta 22 дек 2015 в 11:10
Una spremuta per favore!  •  На сайте 13 лет
0
Цитата (dunyasha @ 22.12.2015 - 07:07)
условие решения уравнения должно быть не else а and*, так вроде система уравнений решается
exp(sqr(sin(x*y))+z)=cotan(Pi/3+y) при cosx=tgyz

Это не система уравнений. Выбирается одно из, в зависимости от диапазона входных значений.
parazit37 автор 22 дек 2015 в 11:36
Шутник  •  На сайте 17 лет
2
Спасибо al9x, Nagli, VSC и всем остальным, кто адекватно ответил на вопрос, за конструктив hi.gif

Это сообщение отредактировал parazit37 - 22 дек 2015 в 11:38
tart44 22 дек 2015 в 11:58
Шутник  •  На сайте 10 лет
0
Цитата (LazYap @ 22.12.2015 - 12:24)
и да. - БЛЯЯЯЯЯЯ - и это потом пойдет в институт???
тс, плюнь в свою знакомую - если не может/не умеет, то и нехуй лезть туда, куда не тянет мозгом.

Ну хер его знает, у нас юристам паскаль преподавали cool.gif
помню на втором курсе бабла неплохо на них поднимали, решали задачки, делали курсовые brake.gif
а вот накой им этот паскаль - хрен его знает....
Gruzd 22 дек 2015 в 12:48
несогласный с администрацией ЯП  •  На сайте 12 лет
0
а я начинал с фокала
Andruha78 22 дек 2015 в 14:14
Шутник  •  На сайте 13 лет
0
http://www.yaplakal.com/findpost/42988551/...pic1274908.html

на 0 делить нельзя... не совсем верная у Вас получилась функция...
CrazyPianist 22 дек 2015 в 14:30
Балагур  •  На сайте 13 лет
0
очень недружелюбные к пользователю проги
вот как ей пользоваться?
запускаешь, вводишь числа. оказывается числа не из одз функции. и что видит пользователь? да ничего, опять приглашение к вводу данных.
хоть бы так написал:
writeln('Входные данные хуйовые. Попробуй еще разок угадать')
noroV 22 дек 2015 в 16:06
Весельчак  •  На сайте 13 лет
0
Цитата (kaa84 @ 21.12.2015 - 18:19)
на ассемблере давай fear.gif

пффф. пожалуйста. Для своей переделать gigi.gif
Правда под формулу D = 4*Pi*Ha*Fi*D0/L.

Текст программы:

; D = 4 * Pi * Ha * Fi * D0 / L
.386; Директива определения типа микропроцессора
. Model flat, stdcall; задачи линейной модели памяти
; И соглашения ОС Windows

option casemap: none; отличие малых и больших букв

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\fpu.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\fpu.lib


BSIZE equ 30
. Data; директива определения данных
D0 dword 200;сохранение в 32-разрядной ячейке памяти переменной х
L dword 1; резервирования 32-х разрядов памяти для переменной y
Ha dd 3,4,5
Fi dd 1,2,3
const dd 4

st1 db "Результат вычисления:", 0
st2 db 10 dup (?), 0

. Code; директива начала кода
_start:
lea esi, Ha
lea edi, Fi
mov ebx, 3

m1:
mov ecx, 3
lea edi, Fi
m2:
finit
fldpi; заносим значения Пи
fimul const; Pi * 4
fild dword ptr [esi]
fmul; умножаем результат на На
fild dword ptr [edi]; заносим результат Фи
fmul; умножаем результат на Фи
fild D0; заносим значение D0
fmul; умножаем результат на D0
fild L; заносим значение лянда
fdiv; делим результат на лянда
pushad; сохраняем все регистры общего назначения в стек

invoke FpuFLtoA, 0, 10, ADDR st2, SRC1_FPU or SRC2_DIMM
invoke MessageBox, NULL, addr st2, addr st1, MB_OK

popad; считываем из стека

add edi, 4;следующий элемент в массиве
loop m2
add esi, 4; следующий элемент в массиве
dec ebx
jnz m1; переходить на метку m1 пока ebx не станет равна 0

invoke ExitProcess, NULL; возврат управления Windows
; И освобождения ресурсов

end _start;директива окончания программы с именем start
via
LazYap 22 дек 2015 в 17:10
Ярила  •  На сайте 15 лет
0
Цитата (noroV @ 22.12.2015 - 16:06)
Цитата (kaa84 @ 21.12.2015 - 18:19)
на ассемблере давай  fear.gif

пффф. пожалуйста. Для своей переделать gigi.gif
Правда под формулу D = 4*Pi*Ha*Fi*D0/L.

Текст программы:

; D = 4 * Pi * Ha * Fi * D0 / L
.386; Директива определения типа микропроцессора
. Model flat, stdcall; задачи линейной модели памяти
; И соглашения ОС Windows

option casemap: none; отличие малых и больших букв

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\fpu.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\fpu.lib


BSIZE equ 30
. Data; директива определения данных
D0 dword 200;сохранение в 32-разрядной ячейке памяти переменной х
L dword 1; резервирования 32-х разрядов памяти для переменной y
Ha dd 3,4,5
Fi dd 1,2,3
const dd 4

st1 db "Результат вычисления:", 0
st2 db 10 dup (?), 0

. Code; директива начала кода
_start:
lea esi, Ha
lea edi, Fi
mov ebx, 3

m1:
mov ecx, 3
lea edi, Fi
m2:
finit
fldpi; заносим значения Пи
fimul const; Pi * 4
fild dword ptr [esi]
fmul; умножаем результат на На
fild dword ptr [edi]; заносим результат Фи
fmul; умножаем результат на Фи
fild D0; заносим значение D0
fmul; умножаем результат на D0
fild L; заносим значение лянда
fdiv; делим результат на лянда
pushad; сохраняем все регистры общего назначения в стек

invoke FpuFLtoA, 0, 10, ADDR st2, SRC1_FPU or SRC2_DIMM
invoke MessageBox, NULL, addr st2, addr st1, MB_OK

popad; считываем из стека

add edi, 4;следующий элемент в массиве
loop m2
add esi, 4; следующий элемент в массиве
dec ebx
jnz m1; переходить на метку m1 пока ebx не станет равна 0

invoke ExitProcess, NULL; возврат управления Windows
; И освобождения ресурсов

end _start;директива окончания программы с именем start
via

кончайте алгоритмами мерятся. и так понятно , что срединий по ЯПу это 45см
4uckNorris 22 дек 2015 в 17:22
Ярила  •  На сайте 12 лет
0
ТС, а смогёшь написать чонить для автоматического подбора шмотья? Ну чтоб как терминатор куртку выбирать smoka.gif

Кто помнит Pascal?

Это сообщение отредактировал 4uckNorris - 22 дек 2015 в 17:24
SuperYago 22 дек 2015 в 18:55
Весельчак  •  На сайте 12 лет
0
Цитата (VSC @ 22.12.2015 - 08:44)
Цитата (SuperYago @ 21.12.2015 - 18:11)
until. UNTIL.  О, боги! Индийские кодеры плачут от зависти. По ходу у ТС мания величия.

Без комментариев... faceoff.gif К чему этот комментарий, или ты первый раз в своей жизни цикл с постусловием увидел? Я боюсь спросить - на каком языке ты пишешь, если в нем такой элементарной вещи нет?
Ну, а по первой задачке тут особо и не развернешься: if верхнее условие - верхняя функция else - нижнее условие (как у ТСа). Даже проверку сделал, чтобы делитеть не был равен нулю, что ей (преподавателю) не понравилось? why.gif
Про сопротивление что-то ТС выпендрился слишком, я бы что-нибудь попроще предложил:
var
vInput,vResist, vResult: real;
begin
vResult := 0;
vResist := 0;
repeat
writeln('Введите сопротивление или 0 для расчета:');
readln(vInput);
if vInput <> 0 then
vResist := vResist + 1/vInput;
until(vInput <> 0);
if vResist <> 0 then
vResult := 1/vResist;
writeln('Полное сопротивление равно: ', vResult,' Ом');
end.

Для дебилов пояснения. Стадия ввода отвечает только за ввод. Нужно получить три значения? Получи и распишись, если значения соответствуют ожидаемому формату. Этап ввода также несет ответственность за прерывание программ до ввода всех исходных данных задачи, если пользователь передумал их решать. По ходу цикла, в контексте задачи вообще не должно быть! Получив три значения на вводе программа или посылает пользователя в жопу с объяснением причин, или вычисляет требуемое значение. Чего нет в приведенном коде.
По какой то неведомой мне причине Division by zero и Numeric overflow сильно неожиданны говнокодерам и вызывают их неподдельное изумление. Хотя предусмотреть исключительные ситуации это их прямая обязанность.

Это сообщение отредактировал SuperYago - 22 дек 2015 в 19:04
51R1U5 22 дек 2015 в 22:24
Ярила  •  На сайте 11 лет
0
Цитата (grably @ 21.12.2015 - 18:08)
ТС прости меня, жопу криворукую! Нечаянно минуc влепила faceoff.gif

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

Руки то хоть не кривожопые? cheer.gif
VSC 23 дек 2015 в 15:34
абырвалГ  •  На сайте 12 лет
1
Цитата (SuperYago @ 22.12.2015 - 18:55)

Для дебилов пояснения. ...Получив три значения на вводе программа или посылает пользователя в жопу с объяснением причин, или вычисляет требуемое значение. Чего нет в приведенном коде.
По какой то неведомой мне причине  Division by zero и Numeric overflow  сильно неожиданны говнокодерам и вызывают их неподдельное изумление. Хотя предусмотреть исключительные ситуации это их прямая обязанность.

А кто тебе сказал, что значений на входе - 3? В условиях об этом нет ни слова, сопротивлений может быть хоть миллион. случай, когда делитель (divisor, блять gigi.gif ) равен нулю - предусмотрен (что у меня, что у ТСа), отдельно возможное исключение обрабатывать НЕ НУЖНО. Это задача для первого курса, важен просто принцип перевода алгоритма в код. Можно обработку исключения на каждый чих лепить, только читаемости коду это не прибавит, а преподавателю важно за минуту понять, что программа расчет выполняет правильно - и все. Я могу тебе привести мой код на pl/sql с рабочей БД нашей организации (~15 тысяч сотрудников действующих), где у нас обработка исключений на каждый мыслимый и немыслимый случай - но это не уровень 1 курса универа.

Это сообщение отредактировал VSC - 23 дек 2015 в 15:34
Oblaka 23 дек 2015 в 15:43
Балагур  •  На сайте 12 лет
0
Паскаль... Давно это было)))
Помню, циферка "3" на перфораторе (или как там это называлось?!) западала, так мы маникюрными ножничками на перфокарте троечки в нужных местах прорезали... old.gif
Wolfman23 23 дек 2015 в 16:09
Приколист  •  На сайте 14 лет
0
Ребят, а есть кто в ООП шарит? Именно нужно С/С++. Нужна помощь.
Понравился пост? Ещё больше интересного в ЯП-Телеграм и ЯП-Max!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 34 865
0 Пользователей:
Страницы: 1 ...  6 7  ОТВЕТИТЬ НОВАЯ ТЕМА

 
 

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



Наверх