Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Таблица Пифагора

Автор: SkyRideR 13.12.2007 2:07

Задача состоит в том, чтобы создать прогу которая выводит на экран квадрат Пифагора - таблицу
умножения для 14 с\с. Я тут написал что мог, но у меня не соответсвие типов идёт. Если не трудно прошу помочь




var
ckl, ckl2 :integer;
z:array[1..10,1..10] of integer;
function FromDec(n, radix:longint):string;
var
s: String;
const
digit: string[16]='0123456789ABCDEF';
begin
s:='';
repeat
s:=digit[(n mod radix)+1]+s;
n:=n div radix;
until n=0;
FromDec:=s;
end;
function ToDec(n:string; radix:longint):longint;
var
m, i: longint;
const
digit: string[16]='0123456789ABCDEF';
begin
m:=0;
while (n[1]='0') and (length(n) > 1) do delete(n,1,1);
for i:=1 to length(n) do m:=m*radix+pos(n[i],digit)-1;
ToDec:=m;
end;
begin
for ckl:=1 to 10 do begin
for ckl2:=1 to 10 do begin
z[ckl,ckl2]:= FromDec((todec(ckl,ckl2, 14), 14);
end;
end;
for ckl:=1 to 10 do begin
for ckl2:=1 to 10 do begin
write(z[ckl,ckl2], ‘ ‘);
end;
writeln;
end;
writeln(FromDec(ToDec(5,5));
end.

Автор: volvo 13.12.2007 3:26

В основной программе достаточно написать:

begin
for ckl:=1 to todec('10', 14) do begin
for ckl2:=1 to todec('10', 14) do
write(FromDec(ckl*ckl2, 14):4);
writeln;
end;
end.
(описание массива Z тоже не нужно) - и получишь таблицу умножения...

Автор: HTML 14.12.2007 18:46

Pascal указывает на write(FromDec(ckl*ckl2, 14):4); в основной программе и пишет ошибку 89: ")" expected.
Что ему не нравится?

Автор: volvo 14.12.2007 18:57

Цитата
Что ему не нравится?
Не знаю... У меня все нормально компилируется. Какая версия Паскаля?

Автор: HTML 14.12.2007 20:19

Цитата
Какая версия Паскаля?

7.0

На всякий случай выложу полную версию того, что получилось:

Program Pifagor;
Var
ckl , ckl2 : Integer;
z : array[1..12,1..12] of Integer;

Function FromDec (n , radix : Longint) : String;
Var
s : String;
Const
digit : string[12]='0123456789ABC';
Begin
s:='';
repeat
s:=digit[(n mod radix)+1]+s;
n:=n div radix;
until n=0;
FromDec:=s;
End;

Function ToDec (n : String; radix : Longint) : Longint;
Var
m , i : Longint;
Const
digit : string[12]='0123456789ABC';
Begin
m:=0;
while (n[1]='0') and (length (n) > 1) do delete (n,1,1);
for i:=1 to length(n) do m:=m*radix+pos(n[i], digit)-1;
ToDec:=m;
End;

Begin
For ckl:=1 to ToDec('12', 12) do begin
for ckl2:=1 to ToDec('12', 12) do
while (FromDec(ckl*ckl2,12):4);
writeln;
end;

readln;
End.

Автор: volvo 14.12.2007 21:04

Там вообще-то не while, а write blink.gif