Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

RusFAQ.ru: Программирование на C / C++

Выпуск № 639
от 04.12.2004, 23:10

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 2066
Отправлено ответов: 3924
Активность: 189.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Василевский Александр
Статус: Опытный
Общий рейтинг: 113.9
[Подробней >>]
DSota
Статус: Опытный
Общий рейтинг: 122.64
[Подробней >>]
DiGiT
Статус: Доверительный
Общий рейтинг: 115.49
[Подробней >>]
 
vitya
Статус: Профессиональный
Общий рейтинг: 109.96
[Подробней >>]
gvozdok
Статус: Доверительный
Общий рейтинг: 125
[Подробней >>]
CrackLab
Статус: Опытный
Общий рейтинг: 114.53
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 118.45
[Подробней >>]
andre
Статус: Опытный
Общий рейтинг: 113.28
URL: мой сайт правда старый не обновлял давно надо бы заняться да руки не доходя
Телефон: 972544517423
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 2056. V obshem takaya bodyaga.Mne nujno sdelat' 2 classes:1-Stack s chislami,2-Stack s operaziyami,no ne e... (ответов: 4)
Вопрос № 2057. Здравствуйте! Хотелось бы получить вопрос на один животрепещущий вопрос, на который мне никто не мож... (ответов: 3)
Вопрос № 2058. Здравствуйте все! В прошлый раз я дал Вам не полную информацию: мне нужно файл под dos на си скомпил... (ответов: 4)

Вопросов: 3, ответов: 11


 Вопрос № 2056

V obshem takaya bodyaga.Mne nujno sdelat' 2 classes:1-Stack s chislami,2-Stack s operaziyami,no ne eto-problema.
Kogda ya dostau iz Stack-a operaziyu to mne nel'zya polzovat'sya ne "if",ne "switch",chto-by opredelit' kakaya operaziya.Vopros:Kak opredelit'-kakaya operaziya???
Zaranee blagodaren!!!



Вопрос отправлен: 01.12.2004, 09:48
Отправитель: rapa

[Следующий вопрос >>] [Список вопросов]

Отвечает Василевский Александр

Здравствуйте, rapa!
Предлагаю следующий способ. Для каждой операции определить функцию, которая выполняет эту операцию и в стек операций ложить не номер операции, а указатель на соответствующую функцию. При извлечении из стека операции без всяких if, switch ... вызывать функцию.

Ответ отправлен: 02.12.2004, 11:05
Отправитель: Василевский Александр


Отвечает DSota

Добрый день, rapa!
Можно создать несколько функций, каждая из которых определяет одну нужную операцию а во второй стек можно помещать указатели на эти операции. И доставая пользоваться ими...

Ответ отправлен: 01.12.2004, 10:56
Отправитель: DSota


Отвечает DiGiT

Приветствую Вас, rapa!
Смотря что вы понимаете под операциями. Если вы операции в виде строки пихаете в стек то вам помогут ассоциативные списки(map из STL например). А иначе ставьте вопрос правильно.

Ответ отправлен: 02.12.2004, 02:37
Отправитель: DiGiT


Отвечает vitya

Доброе время суток, rapa!
Указатели на функции. Правда - тогда все функции должны быть однообразны, иначе никак.

Ответ отправлен: 01.12.2004, 14:33
Отправитель: vitya


 Вопрос № 2057

Здравствуйте! Хотелось бы получить вопрос на один животрепещущий вопрос, на который мне никто не может дать вразумительного ответа: в чем преимущество С++ по сравнению с Object Pascal? Спасибо всем откликнувшимся.



Вопрос отправлен: 01.12.2004, 16:29
Отправитель: Captain NEMO (diodon@mail.primorye.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает gvozdok

Здравствуйте, Captain NEMO!
А чего ты взял что С++ имеет приемущество над Object Pascal?
Из Object Pascal получилась довольно не плохая вещь - Delphi

Ответ отправлен: 01.12.2004, 23:13
Отправитель: gvozdok


Отвечает DSota

Добрый день, Captain NEMO!
1. Возможностью вместо BEGIN END писать правые и левые фигурные скобки - это же на программу насколько букв меньше надо на клавиатуре набить...
2. Возможностью присваивать значение переменной не :=, а просто =.
Обе эти вещи уменьшают размер исходного текста программы...
А программы писать можно и там, и там... Где больше понравилось...
PS - Забыл, у паскаля экзешник чуть больше получается...

Ответ отправлен: 01.12.2004, 18:00
Отправитель: DSota


Отвечает CrackLab

Добрый день, Captain NEMO!
Я вообще не любитель флеймить на такую тему. А если честно то сходу и не скажу. Думаю нельзя сказать "С++ лучше Паскаля потому что"
Я выбрал этот язык потому что я считаю его более гибким. Он более приближен к системе и позволяет делать более сложные вещи. Я достаточно плохо знаю Pascal, но я считаю что некоторые вещи, требующие вмешательства программиста во внутреннее устройство программы или ОС, на С++ реализуются проще. Язык С был так же создан для ускорения создания программ, что отразилось на его синтаксисе, его операторы укаорочены и более гибки. Как я уже говорил С++ более приближен к системе. Паскаль вводит искусственные ограничения для программиста. Например раздел var. На самом деле без разницы в каком месте объявлять переменные. В специально отведенном для этого месте или в самой процедуре. Ведь компилятор просто сдвигает стек в начале процедуры, отводя место под все переменные используемые в этой ф ункции. С++ более свободен от искусственных ограничений, реализованных в Паскале. При программировании в Windows вы получите больше документации по реализации тех или иных алгоритмов, функций на С++. Потому что Windows написан на С и С++ и например огромнейшая библиотека документации MSDN содержит примеры на С++, а не на Паскале. Программисты на С++ зачастую ценятся выше Паскалистов, что поможет вам в будушем при поиске работы. Когда я писал на дельфи, я часто встречал моменты, когда реализация той или иной вещи была затруднительно, и между тем на BCB, VC++ она реализуется совсем просто. Такие моменты встречаются и постепенно склоняют программиста к мыслям "а не перейти ли на С++?". Я знаю что многие поспорили бы с моими доводами, и этот флейм по поводу C++ vs Pascal никогда не закончился. Но я вам написал то что я думаю. С другой стороны я привел малую часть возможных доводов, причиной чего является мой недостаточный опыт (относительно) работы с обоими этими языка ми. ОСобенно с Паскалем, на котором я писал только в унриверситете + пару полусерьезных программок по надобности.
Вы все еще выбираете C++ или Паскаль? =)

Ответ отправлен: 01.12.2004, 18:22
Отправитель: CrackLab


 Вопрос № 2058

Здравствуйте все!
В прошлый раз я дал Вам не полную информацию: мне нужно файл под dos на си скомпилировать в 32-битный исполняемый код без всяких заголовков и прочей ерунды, для того чтобы протестировать новую ОС, которую написал мой друг (я не преувеличиваю). Так она полностью на асме и компилятора под нее нет и она поняимает только такой формат файла - т.е. чистый дамп исполняемых команд, которые напрямую поступают в проц.



Вопрос отправлен: 01.12.2004, 17:42
Отправитель: Стас (stas3@belnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Доброе время суток, Стас!
1. написать так же компилятор. человеку написавшему ОС - компилятор раз плюнуть.
2. можно получить ассемблерный код из большинства приличных компиляторов - который уже скомпилить под нужную ос.

Ответ отправлен: 02.12.2004, 09:58
Отправитель: vitya


Отвечает CrackLab

Доброе время суток, Стас!
Чистый дамп исполняемых команд это com файл. Насколько я знаю 32-битных ком файлов не бывает. Пишите на ассемблере под виндовс, для того чтобы получить 32-битный код. Напишите какую-то часть программы без обращения к функциям, ресурсам и т.д. Найдите эту часть программы в полученном ехе файле. Вырежите ее и вы получите супер мини исполняемый файл для ОС вашего друга. Например напишите что-нибудь типа
mov eax, 2
mov ebx, 3
add eax, ebx
Найдите этот участок программы в ехе файле, вырежите его и вы получите ехе файл для вашей ОС, который складывает две константы =)
Или создайте файл, со следующим содержанием:
B8 02 00 00 00 83 C3 03 01 D8
это и будут написанные мной выше команды ассемблера в откомпилированном виде.
Полученный файл это то что вы хотите получить для запуска на ОС вашего друга.

Ответ отправлен: 01.12.2004, 18:04
Отправитель: CrackLab


Отвечает _vt

Добрый день, Стас!
А в чем проблема написать ее на асме? Вообще-то, если хочешь на С, то тебе надо реализовать библиотеку стандартных функций под свою ось. Или ты думаешь, что сможешь вызывать printf? ;-)
* Origin : I′d like to change the world, but I have no source code


Ответ отправлен: 01.12.2004, 18:51
Отправитель: _vt


Отвечает andre

Доброе время суток, Стас!
а можно более подробно что конкретно надо

Ответ отправлен: 01.12.2004, 17:55
Отправитель: andre



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (21)
C / C++ (20)
Perl (5)
Builder / Delphi (19)
Pascal (21)
Basic / VBA (12)
Java / JavaScript (6)
PHP (19)
Криптография (8)
WinAPI (20)
Радиоэлектроника (15)
Пользователю
Windows 95/98/Me (41)
Windows NT/2000/XP (59)
"Железо" (38)
Поиск информации (22)
Администратору
Windows NT/2000/XP (37)
Linux / Unix (18)
Юристу
Гражданское право (11)
Семейное право (6)
Трудовое право (10)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Web-студия "Kalashnikoff.ru"


hotlog_js="1.0";hotlog_d=document; hotlog_n=navigator;hotlog_rn=Math.random(); hotlog_n_n=(hotlog_n.appName.substring(0,3)=="Mic")?0:1; hotlog_r=""+hotlog_rn+"&s=25513&im=127&r="+escape(hotlog_d.referrer)+"&pg="+ escape(window.location.href); hotlog_d.cookie="hotlog=1"; hotlog_r+="&c="+(hotlog_d.cookie?"Y":"N"); hotlog_d.cookie="hotlog=1; expires=Thu, 01-Jan-70 00:00:01 GMT" hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2";hotlog_s=screen; hotlog_r+="&wh="+hotlog_s.width+'x'+hotlog_s.height+"&px="+((hotlog_n_n==0)? hotlog_s.colorDepth:hotlog_s.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; hotlog_d.write("HotLog") Яндекс цитирования
© 2001-2004 Россия, Москва. Идея, дизайн, программирование: Калашников О.А. ICQ: 68951340
При перепечатке материалов ссылка на данный сайт обязательна!

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное