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

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

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

> Прим. прога
сообщение
Сообщение #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 страниц V < 1 2  
 Ответить  Открыть новую тему 
Ответов(20 - 38)
сообщение
Сообщение #21


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

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

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


lol.gif


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


N337
****

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

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


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

О, боже!..

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

Я нарушил великую заповедь. Каюсь!

lol.gif lol.gif lol.gif


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


Бывалый
***

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

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


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

Цитата
А что же такое "суррогатный язык"?

Вы не знаете что значит слово суррогат?


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

И что из этого? скажите пжлста какие вы написали практически используемые приложения, в которых использование goto было большим облегчением работы?
Я вообще не вижу чем структурированый код сложнее для написания и понимания, кода с goto....
а если вы пишите большие циклы/условия большой вложености, то ипользование goto будем нарушать видимую структуру. Если вам так уж нужно сделать какой-то сверх-сложный и запутаный алгоритм, то можете использовать case-структурное програмирование без всяких goto


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


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

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

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


В принципе я согласен с Digitalator, видимо у него есть опыт написания больших систем, чего нет скажем у меня еще... unsure.gif


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


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Digitalator
Цитата
...современные процы с их архитектурой оптимизировны под языки высокого уровня...

Ничего не путаешь? Может все таки "низкого уровня"? <_<
Никогда не слышал, чтобы процы были оптимизированы под Паскаль или C...


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


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

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

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


наверное он имеет ввиду,ч то современные процы умеют предсказывать ветвления и делать прочую предобработку...


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


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Это "предсказание" используется не только в современных процах. Это было с самого начала.
Если не ошибаюсь, в архитектуре CISC+RISC процов ....
надо попробовать старые конспекты найти...

К тому же, считаю это бредом про оптимизацию для высокоуровневых языков.
Это утверждение было бы более правильным по отношению к компиляторам, которые и переводят все в машинный код.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


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

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

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


Хм....
ну вобщем конечно оптимизация под высокий уровень ... <_<

это что-то не то.
Ведь команды языка высокого уровня это набор команд низкого и компиляторы все по разному переводят их ... так что возможно он не прави в этом..


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


N337
****

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

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


Цитата
Никогда не слышал, чтобы процы были оптимизированы под Паскаль или C...

Такая ситуация наблюдалась в конце 70-х - начале 80-х годов XX века. Например в процессорах мини-ЭВМ семейства VAX от DEC одной инструкцией были реализованы не только пролог функции и копирование строки символов, но и операции с односвязным списком. Вот пример одной из команд этой архитектуры: INDEX <b>, <l>, <h>, <s>, <i>, <a> - вычисление адреса элемента массива (<b> - адрес массива, <l> и <h> - границы индекса, <s> - размер элемента, <i> - индекс элемента, <a> - место, куда будет помещён результат). Операции С "++" и "--" - не что иное, как режим адресации с инкрементом/декрементом - характерная черта системы команд PDP (именно на этой архитектуре родился указанный язык). Для такого подхода существовали вестские причины: дело было на заре теории трансляции, недостаток вычислительных мощностей не позволял реализовывать достаточно гибкие алгоритмы оптимизации. Желание помочь разработчикам компиляторов было оправдано.
Сегодня мы имеем ситуацию, противоположную указанной. Производители процессоров не стремятся "заточить" систему команд под ЯВУ: задача оптимизации генерируемого кода практически полностью перешла в руки разработчиков компиляторов. В x86 только две инструкции были добавлены исключительно на благо ЯВУ: это ENTER и LEAVE (пролог и эпилог, функции; ни та, ни другая не используются в BP). Современные аппаратные средства оптимизации расcчитаны на повышение эффективности выполнения произвольного (в смысле источника генерации, но не семантики) кода.


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


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Т.е. о "современных процах" речь даже не идет...
Так что же имел в виду Digitalator ???


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Бывалый
***

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

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


На самом деле именно языки Паскаль, Си и им подобные я и имел ввиду...
Если посмотреть повнимательней, то на выходе компиллятора структурный код if, while, case и т.д. почти идентичны (ну одна фирма делает как никак), современные процессоры Intel P3/4 или AMD k7 имеют сложные и большое количество конвейров и алгоритмы предсказания ветвлений, а т.к. последние много лет разработка приложений ведется в основном на Си и Паскале, их алгоритмы предсказания улучшались в соответсвии и с ними.

PS: Еще одна мысль про гото: при использование этой штуки, наша программа/подпрограмма перестает быть функцией в математическом понимании.


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


Бывалый
***

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

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


Вот что в институте проходят по этому поводу
Цитата
Цель курса - дать представление об различных подходах, используемых при создании современных ЭВМ. Основное внимание уделяется традиционным архитектурам (CISC и RISC). Рассматриваются взаимосвязи архитектуры и компиляторов языков высокого уровня.


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





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

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


Если рассматривать программу вцелом, то применение локального GOTO оставит её функцией. Любой цикл - комбинация GOTO и IF (jz например). Явный переход иногда полезен при отладке. Но даже в BASIC для красоты стараются делать GOSUB. А программирование, для многих - эстетическое наслаждение.

Под языки высокого уровня оптимизируются не процессоры, а компиляторы. Та же Intel их регулярно выпускает.

i:=0;j:=0;
repeat
 Inc(i);
  repeat
     Inc(j);
  until (a[i,j]=x) or (j:=m);
until (a[i,j]=x) or (i:=n);
if a[i,j]=x then writeln('Found') else writeln('Not found');



и, вроде, не длинно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34





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

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


Sorry, ошибочка. Под until не :=, а = конечно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #35


Гость






Rothmans

А кнопка "Редактировать" зачем?
:D
 К началу страницы 
+ Ответить 
сообщение
Сообщение #36





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

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


Любую задачу можно решить разными путями. "Редактировать" вовремя не заметил, поэтому выпустил патч. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Бывалый
***

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

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


попробуйте записать с помощью обычных математических записей функцию содержащую goto. Без него любую функцию можжно представить конечным числом математических выражений.

ЗЫ: j перед вторым repeat-ом обнулять нада smile.gif

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


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


Прогрессор
****

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

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


Цитата(xds @ 5.11.04 15:54)
Применение 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:



OK:=false;
i:=0;
repeat
inc(i);
j:=0;
   repeat
   inc(j);
   OK:=(a[i,j]=x);
   until OK or (j=m);
until OK or (i=n);

if OK then writeln('found.') else writeln('Not found.');



Имхо, примерно то же самое и по размеру, и по читабельности...
В принципе, в таких простых случаях можно и goto ставить, если уж так нравится.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #39


Автооответчик
*****

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

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


ИМХО паскаль программа с goto - уже Бейсик-программа lol.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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