IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Прим. прога
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


Вот,сделал програмку типа калькулятора,ради интереса да и проверить свои силы в паскале.
Так вот что в это программе лишнее или как можно её улучшить:
program l;
uses crt;
var
a,b,z:real;
d,r:char;
g:boolean;
begin
clrscr;
highvideo;
writeln(' CALCULATOR ');
write(' by -=[SuRiV]=- ');
delay(2000);
clrscr;
g:=false;
repeat
normvideo;
writeln;
write('‚ўҐ¤ЁвҐ ЇҐаў®Ґ зЁб«® ');
readln( a );
write('‚ўҐ¤ЁвҐ ўв®а®Ґ зЁб«® ');
readln( b );
write('‚ўҐ¤ЁвҐ §­ Є ¤Ґ©бвўЁп ');
readln(d);
case d of
'+': z:=a+b;
'-': z:=a-b;
'*': z:=a*b;
'/': z:=a/b;
else
g:=true;
write('Ќ ¤® Ўл«® ўўҐбвЁ §­ Є ¤Ґ©бвўЁп!');
delay(2000);
halt;
end;
writeln('ЋвўҐв:',a:5 :1,d,b:5 :1,' = ',z:5 :2);
write('…йс а §®Є(Y/N)');
readln®;
if r='n' then
begin
write('Љ «мЄг«пв®а § ўҐаи Ґв бў®о а Ў®вг...');
g:=true;
end;
until g;
readln;
end.

:p2:


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






suriv

Сразу бросается в глаза - нет проверки деления на ноль ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


Hy A TEIIEPb:
program l;
uses crt;
var
a,b,z:real;
d,r:char;
g:boolean;
begin
clrscr;
highvideo;
writeln('                          CALCULATOR                     ');
write('                            by -=[SuRiV]=-                     ');
delay(2000);
clrscr;
g:=false;
repeat
normvideo;
writeln;
write('‚ўҐ¤ЁвҐ ЇҐаў®Ґ зЁб«® ');
readln(a);
write('‚ўҐ¤ЁвҐ ўв®а®Ґ зЁб«® ');
readln(b);
if b=0 then halt;
write('‚ўҐ¤ЁвҐ §­ Є ¤Ґ©бвўЁп ');
readln(d);
case d of
'+': z:=a+b;
'-': z:=a-b;
'*': z:=a*b;
'/': z:=a/b;
else
g:=true;
write('Ќ ¤® Ўл«® ўўҐбвЁ §­ Є ¤Ґ©бвўЁп!');
delay(2000);
halt;
end;
writeln('ЋвўҐв:',a:5 :1,d,b:5 :1,' = ',z:5 :2);
write('…йс а §®Є(Y/N)');
readln®;
if r='n' then
begin
write('Љ «мЄг«пв®а § ўҐаи Ґв бў®о а Ў®вг...');
g:=true;
end;
until g;
readln;
end.



--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Ну зачем сразу выход? Впринципе проверку на нуль надо делать только в операции деления... (ну если всего только 4 операции).
И еще, если решишь сделать что-то круче (что будет теоретически долго считать), используй другие вещественные типы, они в 1,5 раза быстрее работают. Даже почти в 2.
Это я доказывал, если интересно, загляни в прикрепленную тему об ускорении работы программ.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


Хмм
пишу

program l;
uses crt;
begin
sound(120);
delay(60);
nosound;
readln;
end.

И нифига не пищит unsure.gif

Как надо делать?


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






suriv

Ты бы Delay увеличил ... хотя бы до 5000...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


даи частоту звука.... а то кряхтеть будет smile.gif)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


program l;
uses crt;
begin
sound(120);
delay(9999);
nosound;
readln;
end.

Нифига не работает sad.gif

delay и 5000 и 999 2400 нифига


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Попробуй :

program l;
uses crt;
begin
 sound(1200);
 delay(10000);
 nosound;
 readln;
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


А у тебя системный спикер (как в госдуме спикер ЛОЛ) есть?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


Блин напишите как шоб был красивый чистый (хотя чистым он никогда не будет) звук. Кокда биос загружается(В смысле комп врубаю) он пищит а как пишу так он зараза пищать не хочет.

Добавлено (5.11.04 14:16):
Вот многие говорят: типа использовать goto неправильно и нерационально.
чем же эт непавильно. huh.gif


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Вот многие говорят:типа использовать goto неправильно и нерационально.

Нифига подобного smile.gif
Гото просто запрещен в рамках ООП. Но так это очень быстрая конструкция,а циклы на его основе супер быстры, и по скорости такие-же как и wile.
К тому же оператор гото, как всегда говорит Сквозной, философская конструкция smile.gif
Вобщем испольуй если надо, но не показывай никому smile.gif
А так, математически доказанно, что без него можно обойтись..


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


Блин Ещё одна хрень пишу в BP7:
program l;
uses crt;
begin
sound(1200);
delay(5000);
nosound;
readln;
end.

Пишет 'Division by zero'
Ну я поменял turbo.tpl но всё равно вылезает ошибка.

Добавлено:
ээй это ведь из-за того что turbo.tpl старый или что


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Да именно. Из-за этого.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Goto пакость совершенная - что называется ни рыба ни мясо.
Если мы пишем на паскале, то это должен быть четкий, понятный и строгоструктурированный код, а используя goto мы все эти прелести испортим.
Если мы гонимся за скоростью и у нас оптимизацомания, то пишем asm, а за ним хоть jmp, хоть jn или jne, и на каждый бит регистра флагов по два собственных jmp найдется...


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Применение goto оправдано при выходе из нескольких вложенных циклов:
for i := 1 to n do
 for j := 1 to m do
   if a[i, j] = x then
     begin
       Writeln('Found.');
       goto Done;
     end;
Writeln('Not found.');
Done:



--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


неоправдано, то же самое:
Код

exit:=false;
i:=1;
j:=1;
while not(exit) do
 begin
 if a[i,j] = x then
   begin  
   writeln('Found. ');
   exit:=true;
   end else
   begin
   inc(j);
   if j>m then
     begin
     j:=1;
     inc(i)
     if i>n then
        begin
        writeln('No found');
        exit:=true;
        end;
     end;
   end;
 end;

и не надо говорить что с goto код короче и т.д. и т.п. мы пишем на структурированом, а не суррогатном языке

Сообщение отредактировано: Digitalator -


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Цитата(Digitalator @ 5.11.04 19:02)
мы пишем на структурированом, а не суррогатном языке

Мы пишем не только примеры для статей и книжек, но еще и практически используемые приложения.

P. S. Структурированность... Сравним время, необходимое человеку для анализа семантики первого и второго вариантов кода...

P.P.S. А что же такое "суррогатный язык"? ;)

Сообщение отредактировано: xds -


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Сравним время, необходимое человеку для анализа семантики первого и второго вариантов кода...

Вот-вот...
между прочим, в некоторых книгах советуют использовать гото, елси от этого улучшится читаемость кода..
Цитата
Мы пишем не только примеры для статей и книжек, но еще и практически используемые приложения.

Вот в том-то и дело... иногда получается, что куча циклов, сильно тормозящих работу, можно убрать а использовать ГОТО.

ЗЫ: хотя я сам не пользуюсь, гото, однако вижу в нем и положительные моменты...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


гото - конструкция, интегрируемая из асма

А не советуют ее применять идеологи ГРАМОТНОГО ПРОГРАММИРОВАНИЯ =)


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 2:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name