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

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


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

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

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

Выпуск № 531
от 29.12.2007, 22:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 248, Экспертов: 42
В номере:Вопросов: 3, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 115665: Добрый день! Помогие, пожалйста, с задачами в PASCALe. 1) В строке имеется одна точка с запятой ; Подсчитать кол-во символов до нее и после. 2) Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный ...
Вопрос № 115766: Здравствуйте, уважаемые эксперты! Я уже задавала этот вопрос в другую рассылку, но там почему-то не ответили. Может Вы поможете? У меня вопрос на тему Ассемблерные подпрограммы в программах на Pascal’е. Скажите, пожалуйста, как запустить эти моду...
Вопрос № 115788: Зачем нам в решении 5 задачи переменная f ? <code>Задача 5. Дана действительная квадратная матрица порядка n. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, ...

Вопрос № 115.665
Добрый день!
Помогие, пожалйста, с задачами в PASCALe.

1) В строке имеется одна точка с запятой ; Подсчитать кол-во символов до нее и после.
2) Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *.

Очень надеюсь на Вашу помощь, заранее спасибо
Отправлен: 24.12.2007, 07:00
Вопрос задал: ksana09 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Alexey Ku
Здравствуйте, ksana09!

Попробуйте так, писал без компилятора.

Приложение:

Ответ отправил: Alexey Ku (статус: 1-ый класс)
Ответ отправлен: 24.12.2007, 15:27
Оценка за ответ: 4

Отвечает: Артём1983
Здравствуйте, ksana09!
Коротко опишу свои решения.
1) Для того что бы посчитать количество символов до символа ; я нахожу местоположение символа ; в строке.
Для того что бы посчитать количество символов после символа ; я вычитаю из общей длины строки позицию символа ;.
2) В цикле "пробегаю" по всей строке если символ на текущем указателе = "*" удаляем.
В следующем цикле из двух строк собираю одну.

Приложение:

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

Ответ отправил: Артём1983 (статус: 7-ой класс)
Ответ отправлен: 24.12.2007, 21:47
Оценка за ответ: 5
Комментарий оценки:
Артем СПАСИБО ВАМ ОГРОМНОЕ !!!! вы мне очень помогли, (причем уже не первый раз) Даже не знаю, как вас благодарить)) Почему-то именно Вы присылаете действительно работающие программы Еще раз Спасибо вам огромное!!!!!!!


Вопрос № 115.766
Здравствуйте, уважаемые эксперты! Я уже задавала этот вопрос в другую рассылку, но там почему-то не ответили. Может Вы поможете? У меня вопрос на тему Ассемблерные подпрограммы в программах на Pascal’е.
Скажите, пожалуйста, как запустить эти модули в TURBO PASCAL'е. И проверьте, пожалуйста, правильно ли написаны 2-ой и 3-ий модули. Заранее спасибо!!!:-)

1 модуль
Code SEGMENT byte public
ASSUME cs:code

PUBLIC MaximumPositive

MaximumPositive PROC NEAR
Arr EQU dword ptr [BP+6]
N EQU word ptr [BP+4]
PUSH BP ;помещаем в стек регистр BP
MOV BP,SP
;получаем параметры
MOV CX,N
LES SI,Arr
;заходим в цикл
jmp short NewMaxH ;переходим к следующему элементу
LoopMax: add si,4
cmp dx,ES:[SI+2] ;проверяем старшую часть числа
jg noMax ;если мах больше переход(проверка со знаком)
je okCheckLow ;если равны проверяем

;запоминаем новое максимальное значение
newMaxH: mov dx,es:[si+2]
newMaxL: mov ax,es:[si]
jmp short noMax

;проверяем младшую часть числа
okCheckLow: cmp ax,es:[si]

jb newMaxL ;проверка без знаковая

noMax: loop loopMax ;цикл

;на выходе DX:AX-искомое число
POP BP
RET 6
MaximumPositive ENDP
Code ENDS
END

2 модуль
.model large,pascal
.code

PUBLIC MaximumPositive
MaximumPositive PROC NEAR Arr:dword, N:word
Mov CX,N
Les si,Arr
Xor bx,bx

LoopMax:
add si,4
cmp dx,ES:[SI+2] ;проверяем старшую часть числа
jg noMax ;если мах больше переход(проверка со знаком)
je okCheckLow ;если равны проверяем
newMaxH:
mov dx,es:[si+2]

newMaxL:
mov ax,es:[si]
jmp short noMax
Ret 6
MaximumPositive endp
End

3 модуль
program MAX;
type TArr=array [1..5] of longint;
{$L PROC.obj}
function MaximumPositive(var arr:TArr; N:integer):longint; near; external;
{$L PROCM.obj}
var
Arr:TArr;
i:integer;
j:longint;
begin
writeln;
writeln;
writeln;
randomize;
write('Arr:');
for i:=1 to 5 do
readln(Arr[i]);
writeln;
{поиск максимума}
write('Arr (asm)==> ');
j:=MaximumPositive(arr,5);
writeln(j);
{поиск максимума контроль}
j:=arr[1];
for i:=2 to 5 do
if j<arr[i]then j:=arr[i];
writeln('Arr (pas)==> ',j);
readln;

end.
Отправлен: 24.12.2007, 17:15
Вопрос задала: Krista (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

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

Смотрите приложение.
Замечания по приведенному коду:
1)имена функций в модулях должны иметь разные имена;
2)при такой организации в памяти модуля 2, команда Ret должна быть без аргумента;
3)модуль 2, механизм поиска скопирован не полностью.
Удачи!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 24.12.2007, 18:26
Оценка за ответ: 5


Вопрос № 115.788
Зачем нам в решении 5 задачи переменная f ?

Задача 5.
Дана действительная квадратная матрица порядка n. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше нее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.

Вопрос дополнен условием задачи, а также кодом ее решения из вопроса №102875.
-----
∙ Отредактировал: Gh0stik (Академик)
∙ Дата редактирования: 24.12.2007, 21:28

Приложение:

Отправлен: 24.12.2007, 20:37
Вопрос задал: Realx (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

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

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

И соответственно при обработке этой переменной в блоке:
if f > 0 then
writeln(sum: 4: 3)
else
writeln('Net takih elementov');


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

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Академик)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
WWW: http://gh0stik.rusfaq.ru/
ICQ: 289363162
----
Ответ отправлен: 24.12.2007, 21:33
Оценка за ответ: 5


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


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

В избранное