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

RusFAQ.ru: Программирование на языке Pascal


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 493
от 19.11.2007, 22:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 243, Экспертов: 46
В номере:Вопросов: 5, Ответов: 12


Вопрос № 109300: Уважаемые эксперты! Помогите, пожалуйста, решить задачи: 1. Вывести на экран латинский алфавит в таком виде: abcd...z zbcd...z zzcd...z zzzd..z ........... zzzz...z 2. Вывести на экран латинский алфавит в таком виде:<b...
Вопрос № 109305: Здраствуйте Уважаемые эксперты, помогите пожалуйста написать програму: Создать односторонний список(используя указатели). Написать процедуру которая выбросит из списка найменьшый елемент и выведит на экран список без этого елемента, потом снова, с по...
Вопрос № 109390: Снова я:-). Дано произвольное значение b и два произвольных массива G,V размера n,m соответственно. Найти сумму элементов массива G, меньших заданного b, а также сумму элементов массива V, меньших заданного b. Исходные данные взять самостоятельно. ...
Вопрос № 109406: Здравствуйте, не могу задачу решить: Найти сумму элементов, принадлежащих промежутку от А до В (А и В вводить с клавиатуры). Знаю что надо искать с помощью цикла с предусловием, не заню как реализовать. Помогите пожалуйста...
Вопрос № 109447: Здравствуйте.У меня проблема.3 часа писал программу и она вылетела О_о , остался только ехешник.Не подскажете как вытащить из него исходный код ? Заранее спасибо.С уважением,Андрей....

Вопрос № 109.300
Уважаемые эксперты! Помогите, пожалуйста, решить задачи:
1. Вывести на экран латинский алфавит в таком виде:
abcd...z
zbcd...z
zzcd...z
zzzd..z
...........
zzzz...z
2. Вывести на экран латинский алфавит в таком виде:
abcd..z
bcd...za
cde...zab
Заранее большое спасибо!
Отправлен: 13.11.2007, 22:52
Вопрос задала: Ласточка (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gh0stik
Здравствуйте, Ласточка!

Вот листинги, комментарии я думаю излишни...
Задача1.
var xx,yy:char;
s:string;
begin
s:='';
for xx:='a' to 'z' do
begin
write(s);
for yy:=xx to 'z' do write(yy);
s:=s+'z';
writeln;
end;
end.


Задача2.
var xx,yy,zz:char;
begin
for xx:='a' to 'z' do write(xx);
writeln;
for xx:='b' to 'z' do
begin
// write(s);
for yy:=xx to 'z' do write(yy);
for zz:='a' to chr(ord(xx)-1) do write(zz);
writeln;
end;
end.


Good Luck!!!

Переменная S в коде второй задачи явно лишняя... :)
-----
∙ Отредактировал: sir henry (Академик)
∙ Дата редактирования: 14.11.2007, 15:45

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 13.11.2007, 23:21
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за помощь, Gh0stik!

Отвечает: Стома С.С.
Здравствуйте, Ласточка!

в первом задании просто удаляем в цикле первый символ и добавляем в начало z

во втором примере во временную переменную в цикле копируем первый символ в основной строке удаляем первый символ и добавляем в конец содержимое временной строки

Приложение:

Ответ отправил: Стома С.С. (статус: 2-ой класс)
Ответ отправлен: 14.11.2007, 00:41
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за решения, Стома С.С.!

Отвечает: Зиновьев Дмитрий Владимирович
!!!
Здравствуйте, Ласточка!
1.
for i := ord('a') to ord('z') do begin
for j := ord('a') to ord('z') do begin
if j < i then Write('z') ELSE Write(chr(j))
end;
Writeln;
end;
2.
sm := 0;
for i := ord('a') to ord('z') do begin
for j := ord('a') to ord('z') do begin
Write(chr((j + sm) div ord('a')));
end;
Writeln;
sm := sm + 1;
end;

Решение №2 не годится. Проверьте его у себя.
-----
∙ Отредактировал: sir henry (Академик)
∙ Дата редактирования: 14.11.2007, 15:38
Ответ отправил: Зиновьев Дмитрий Владимирович (статус: 6-ой класс)
Ответ отправлен: 14.11.2007, 12:50
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за решения!


Вопрос № 109.305
Здраствуйте Уважаемые эксперты, помогите пожалуйста написать програму: Создать односторонний список(используя указатели). Написать процедуру которая выбросит из списка найменьшый елемент и выведит на экран список без этого елемента, потом снова, с полученного елемента выбросит найменьший и выведит на экран, и так до тех пор пока в списку неостанется 1 елемент. Я сам начал писать, дошёл до того как найти найменьший елемент, как дальше незнаю :( в приложении то что я написал уже, возможно там не всё хорошо, мне самому ненравится моя процедура. Пожалуйста помогите дописать програму.
Заранее Спасибо.
С Уважением, Станислав.

Приложение:

Отправлен: 13.11.2007, 23:58
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 23)

Отвечает: sir henry
Здравствуйте, Станислав!
В Паскале, в модуле Objects, есть очень хороший компонет, который идеально подходит для решения Вашей задачи - TSortedCollection.
Это динамический массив указателей, который можно сортировать по указанному Вами алгоритму сортировки, тем самым автоматически решив проблему нахождения наименьшего элемента. Этот элемент всегда будет первым (или последним :) ).
Код смотрите в приложении. Пример выполнен в FreePascal, если у Вас другой Паскаль и возникнут какие-то ошибки в связи с этим - напишите в мини-форум вопроса.

Приложение:

Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 14.11.2007, 11:19

Отвечает: Зиновьев Дмитрий Владимирович
!!!
Здравствуйте, Станислав!
А если сделать массив динамическим?
Тогда выбросить из массива А элемент под номером i можно так:
for j := i to Length(A) - 2 do
A[j] := A[j+1];
SetLength(A, Length(A)-1); //См. комментарий

Надеюсь, данная идея поможет

Если используется Turbo Pascal, то там, в отличие от FreePascal, нет динамических массивов в том виде, в котором они есть в Delphi или FreePascal.
-----
∙ Отредактировал: sir henry (Академик)
∙ Дата редактирования: 14.11.2007, 15:04
Ответ отправил: Зиновьев Дмитрий Владимирович (статус: 6-ой класс)
Ответ отправлен: 14.11.2007, 12:45


Вопрос № 109.390
Снова я:-). Дано произвольное значение b и два произвольных массива G,V размера n,m соответственно. Найти сумму элементов массива G, меньших заданного b, а также сумму элементов массива V, меньших заданного b. Исходные данные взять самостоятельно.
Отправлен: 14.11.2007, 14:42
Вопрос задал: Артем Глушков (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Boriss
Здравствуйте, Артем Глушков!
Это нужно делать так, как в программе, приведенной в приложении
Надеюсь, все понятно? Если нет, то спрашивайте в минофоруме

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: mte
WWW: Программирование на Паскале
----
Ответ отправлен: 14.11.2007, 15:57
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Артём1983
Здравствуйте, Артем Глушков!
Размерность массивов определяется константами. R1 b R2. Для каждого массива я завёл свой тип. Код программы смотрите в приложении.

Приложение:

---------
Программирование - дело Путное!

Ответ отправил: Артём1983 (статус: 6-ой класс)
Ответ отправлен: 14.11.2007, 23:20
Оценка за ответ: 5
Комментарий оценки:
И вам спасибо!


Вопрос № 109.406
Здравствуйте, не могу задачу решить:
Найти сумму элементов, принадлежащих промежутку от А до В (А и В вводить с клавиатуры).
Знаю что надо искать с помощью цикла с предусловием, не заню как реализовать. Помогите пожалуйста
Отправлен: 14.11.2007, 17:04
Вопрос задал: Исаак Моисеевич (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Исаак Моисеевич!

Приблизительно так:
var a,b,s:integer;
begin
write('a:');readln(a);
write('b:');readln(b);
s:=0;
while a<=b do
begin
s:=s+a;
inc(a);
end;
write('s:',s);
end.

Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 14.11.2007, 17:36
Оценка за ответ: 5
Комментарий оценки:
Спасибо, только программа чуть чуть неправильно считает, когда ввожу а=5 и b=8, выводится результат 26, ну это небольшая проблема

Отвечает: Артём1983
Здравствуйте, Исаак Моисеевич!
Смотрите код программы в приложении.

Приложение:

---------
Программирование - дело Путное!

Ответ отправил: Артём1983 (статус: 6-ой класс)
Ответ отправлен: 14.11.2007, 23:12
Оценка за ответ: 5

Отвечает: Зиновьев Дмитрий Владимирович
Здравствуйте, Исаак Моисеевич!
sum := 0;
for i := a to b do sum := sum + i;
Если под элементами понимаются целые числа.. Если элементы массива, то
for i := a to b do sum := sum + a[i];
Ответ отправил: Зиновьев Дмитрий Владимирович (статус: 6-ой класс)
Ответ отправлен: 15.11.2007, 13:45
Оценка за ответ: 5
Комментарий оценки:
спасибо


Вопрос № 109.447
Здравствуйте.У меня проблема.3 часа писал программу и она вылетела О_о , остался только ехешник.Не подскажете как вытащить из него исходный код ?
Заранее спасибо.С уважением,Андрей.
Отправлен: 14.11.2007, 21:30
Вопрос задал: Карягин Андрей Валерьевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Решетник Д
Здравствуйте, Карягин Андрей Валерьевич!
Если среда разработки не позаботилась об автосохранении копии программы, то это будет тяжело. Единственный вариант - дизассемблирование кода. Но этот вариант тяжелее того, если вы перепишите программу.
думаю, это будет просто уроком. стоит периодически сохранять проект.
НО.
Все же можно просмотреть примерный ассембелрный код вашего приложения с помощью: Win32DASM, IDA Pro.
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: Студент)
Ответ отправлен: 14.11.2007, 21:40

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Карягин Андрей Валерьевич!

Даю ссылку на IDA free, спокойно распознает компиляторы С++ и Паскаль и выделяет основные функции.

Пример работы:
seg000:0035 call @ParamStr$qm6String4Word;ParamStr(index): String
seg000:003A call @Assign$qm4Filem6String;Assign(var f: File; name: String)
seg000:0074 call @Rewrite$qm4File4Word;Rewrite(var f: File; recsize: Word)

Обратите внимание на информацию после " ; " думаю онa Вам знакомa. Таким образом Вы получите скелет программы, остальное нужно будет дописывать самому.
Нет худа без добра: Вам предоставится возможность посмотреть на голый ассемблер или как "извращается" компилятор над текстом Вашей программы. Если задумаетесь над этим будет интересно.
ps:Win32DASM- к сожалению только дисассемблирует.
Удачи!


---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 14.11.2007, 22:18


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное