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

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


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

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

Выпуск № 309
от 14.02.2007, 22:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 236, Экспертов: 55
В номере:Вопросов: 1, Ответов: 2


Вопрос № 75010: Здравствуйте, уважаемые эксперты. Помогите, пожалуйста, с этими задачами. 1) На двух прозрачных листах бумаги в клетку размерами 20х20 нарисовано по одной фигуре, состоящей из закрашенных клеток. Составить программу, которая отвечает на вопр...

Вопрос № 75.010
Здравствуйте, уважаемые эксперты. Помогите, пожалуйста, с этими задачами.

1) На двух прозрачных листах бумаги в клетку размерами 20х20 нарисовано по одной фигуре, состоящей из закрашенных клеток. Составить программу, которая отвечает на вопрос: конгруентны ли эти фигуры?
2) Составьте программу, которая изображает на экране «умножение столбиком» двух натуральных чисел, в каждом из которых не более 20 цифр.

Заранее спасибо.
Отправлен: 09.02.2007, 22:08
Вопрос задал: Гусев Денис (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Яна
Здравствуйте, Гусев Денис!
И чем тебе помочь? Написать программу, или алгоритм, или может подсказки нехватает? Конкретнее вопрос нужно задавать.
Умножение столбиком вообще сделать несложно: нужно лишь умножить первое число на все цифры второго, преобразовать в строку, добавить нужное количество пробелов и вывести в нужном порядке. Правда вот умножать двадцатизначное число на однозначное не так уж просто. Хотя если вспомнить таблицу умножения и алгоритм "переноса в уме" - то можно.
Ответ отправила: Яна (статус: 5-ый класс)
Ответ отправлен: 09.02.2007, 22:58

Отвечает: fsl
Здравствуйте, Гусев Денис!

uses crt;
var a,b:array[0..19] of integer; {20-значные числа}
p:array[0..41] of integer; {результат может оказаться 40- или 41-значным числом}
i,j,c,n:integer;
begin
{ввод 20-значных чисел в массивы}
n:=19;
for i:=0 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
for i:=0 to n do
begin
write('b[',i,']=');
readln(b[i]);
end;
{очистка экрана и вывод 20-значных чисел}
ClrScr;
for i:=0 to n do
begin
gotoxy(21+i,1);
write(a[i]);
end;
writeln();
for i:=0 to n do
begin
gotoxy(21+i,2);
write(b[i]);
end;
writeln('');
gotoxy(20,3);
writeln('-----------------------------------------');
for i:=0 to n do
begin
c:=0;
for j:=0 to n do
begin
c:=c+a[n-j]*b[n-i];
if c>9 then
begin
gotoxy(22+n-1-i-j,4+i);
write(c mod 10);
p[j+i]:=p[j+i]+(c mod 10);
p[j+1+i]:=p[j+1+i]+(c div 10);
c:=c div 10;

end
else
begin
gotoxy(22+n-1-j-i,4+i);
write(c);
p[j+i]:=p[j+i]+c;
c:=0;
end
end;
end;
gotoxy(1,5+n);
writeln('-------------------------------------------------------------');
{вывод ответа}
for i:=2*n+1 downto 0 do
begin
gotoxy(2*n+2-i,5+n+1);
write(p[i]);
end;
end.

Удачи!
---------
Ну, Вы спросили!
Ответ отправил: fsl (статус: Студент)
Ответ отправлен: 10.02.2007, 00:29


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.44 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное