Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 00:59   #1
WhyBeNormal
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 11
По умолчанию Задача

1)Надо в порядке возрастания написать числа от 1го до 10000 по пять чисел в каждой строке, которые могут быть представлены как сумма квадратов двух натуральных чисел.
2) Дана матрица n на n из чаров. надо написать функцию, которая определяет в каком столбце больше всего букв А, и в этом столбце считает скока цифр в нем и выводит их количество.
Спасибо.
WhyBeNormal вне форума Ответить с цитированием
Старый 22.12.2008, 01:21   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Первая прога:
Вроде работает. Только вот чисел слишком много - на экране умещаются только последние ) Так что лучше выводить в файл.
Код:
program chisla;
uses crt;

var
i,n,m,sk,z : integer;
fl : boolean;
begin
clrscr;
sk:=1;
for i:=2 to 10000 do
 begin
 z := round(int(sqrt(i)));
 fl := false;
 for n:=1 to z do
  begin
  for m:=1 to n do
   begin
   if n*n+m*m = i then
     begin
     write(i,'  ');
     if sk = 5 then begin
                    writeln;
                    sk := 1;
                    end
     else inc(sk);
     fl := true;
     break;
     end;
   end;
  if fl then break;
  end;

 end;


readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 22.12.2008 в 01:24.
Sazary вне форума Ответить с цитированием
Старый 22.12.2008, 01:51   #3
WhyBeNormal
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 11
По умолчанию

да можно сделать так чтоб все видеть, просто надо добавить сверху uses crt; и между writeln; и sk:=1 вставить readkey;
В общем спасибо.
WhyBeNormal вне форума Ответить с цитированием
Старый 22.12.2008, 02:09   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вторая:
Матрица вводится из файла "wishd.txt". Его содержимое:
Код:
A 3 f A h d v
e A 3 A f 9 s
A f g A s d g
2 f A A A f g
A 3 6 4 h 8 o
f g r 4 A 3 e
4 g g 4 g g g
Сама прога:
Код:
program matrchar;
uses crt;

const n=7;
var
fin : text;
i,j,s,nj,d : integer;
matr : array[1..n,1..n] of char;
c : char;



begin
clrscr;

{vvod matricy}
assign(fin,'wishd.txt');
reset(fin);
for i:=1 to n do
 for j:=1 to n do
  begin
  read(fin,c);
  if (c=#32) or (c=#13) or (c=#10) then
                                    begin
                                    dec(j);
                                    continue;
                                    end;
  matr[i,j] := c;
  end;
close(fin);
{konec vvoda matricy}

{vyvod matricy}
for i:=1 to n do
 begin
 for j:=1 to n do
  write(matr[i,j],' ');
 writeln;
 end;
{--}

d := 0;
s := 0;
nj := 0;
for j:=1 to n do
 begin
 for i:=1 to n do
  if matr[i,j] = 'A' then inc(s);
 if s>d then
  begin
  d := s;
  {writeln('j=',j,' s= ',s);}
  nj := j;
  end;
  s:=0;
 end;
d := 0;
for i:=1 to n do
 if (ord(matr[i,nj])>=48) and (ord(matr[i,nj])<=57) then inc(d);

writeln;
writeln('Stolbets ',nj,' kolichestvo cifr= ',d);

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.12.2008, 02:11   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
да можно сделать так чтоб все видеть, просто надо добавить сверху uses crt; и между writeln; и sk:=1 вставить readkey;
Можно (я так и делал, когда проверял), только вот нажимать долго придется )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача Witaliy Паскаль, Turbo Pascal, PascalABC.NET 1 12.11.2008 18:18