Вопрос № 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. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше нее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.
Приложение:
Отправлен: 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