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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2008, 14:43   #1
Rom
 
Регистрация: 21.12.2008
Сообщений: 4
По умолчанию упорядочивание матрицы

1. Дана целочисленная матрица а(3,5). Упорядочить ее строки по возростанию их максимальных элементов.

2. Найти все такие N(N<100), что у числа N! сумма цифр - простое число.

Помогите решить .. заранее благодарен
Rom вне форума Ответить с цитированием
Старый 21.12.2008, 14:55   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию 2

Код:
var i,j,m,x,code,t:integer;
    s:string;
    flag:boolean;

function  fact(x:integer):longint;
var i:integer;
    n:longint;
begin
n:=1;
for i:=1 to x do
  n:=n*i;
  fact:=n;
end;

begin
for i:=1 to 100 do
 begin
  Str(fact(i),s);
  m:=0;
   for j:=1 to length(s) do
    begin
     val(s[j],x,code);
     m:=m+x;
    end;
   flag:=true;
   for t:=1 to m do
    if m mod t = 0 then if (t<>1)and(t<>m) then flag:=false;
   if flag then writeln(i);
 end;

end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 21.12.2008, 15:29   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию 1

Код:
uses crt;
const m=3;
      n=5;
var i,j,temp,k:integer;
    a:array[1..m,1..n] of integer;
    b,t:array[1..n] of integer;
begin
randomize;
clrscr;
for i:=1 to m do
 begin
 for j:=1 to n do
  begin
   a[i,j]:=random(100)-random(100);
   write(a[i,j]:5);
  end;
 writeln;
 end;
for i:=1 to m do
 begin
  b[i]:=a[i,1];
   for j:=2 to n do
    if a[i,j]>b[i] then b[i]:=a[i,j];
 end;

for i:=2 to m do
    for j:=m downto i do
      if b[j-1]>b[j] then
        begin
          Temp:=b[j-1];
          b[j-1]:=b[j];
          b[j]:=temp;
          temp:=j;
          for k:=1 to n do
           t[k]:=a[temp,k];
          for k:=1 to n do
           a[temp,k]:=a[temp-1,k];
          for k:=1 to n do
           a[temp-1,k]:=t[k];
        end;
writeln('=================================================');
for i:=1 to m do
 begin
  for j:=1 to n do
   write(a[i,j]:5);
 writeln;
 end;
writeln('=================================================');
for i:=1 to m do
 write(b[i]:5);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 21.12.2008 в 18:02.
alex_fcsm вне форума Ответить с цитированием
Старый 21.12.2008, 15:43   #4
Rom
 
Регистрация: 21.12.2008
Сообщений: 4
По умолчанию

Thanks alex_fcsm
Rom вне форума Ответить с цитированием
Старый 21.12.2008, 17:17   #5
Rom
 
Регистрация: 21.12.2008
Сообщений: 4
По умолчанию

2alex_fcsm проверил обе задачи решены не верно! =(
Rom вне форума Ответить с цитированием
Старый 21.12.2008, 17:27   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Лучше проверяйте
А если есть пример ошибки, то напишите посмотрю
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 21.12.2008, 18:21   #7
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Вторую задачу можно написать таким образом
Код:
program nn;
uses crt;
var  p,pp,n,suma:integer;
begin
clrscr;
n:=1;
repeat
n:=n+1;
p:=n;
suma:=0;
repeat
pp:=p;
p:=p div 10;
pp:=pp mod 10;
suma:=suma+pp;
until p=0;
if suma in [2,3,5,7,11,13,17] then writeln (n);
until n>=100;
readkey
end.
Teor вне форума Ответить с цитированием
Старый 21.12.2008, 18:23   #8
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Teor Посмотреть сообщение
Вторую задачу можно написать таким образом
Код:
program nn;
uses crt;
var  p,pp,n,suma:integer;
begin
clrscr;
n:=1;
repeat
n:=n+1;
p:=n;
suma:=0;
repeat
pp:=p;
p:=p div 10;
pp:=pp mod 10;
suma:=suma+pp;
until p=0;
if suma in [2,3,5,7,11,13,17] then writeln (n);
until n>=100;
readkey
end.
Во-первых нужен факториал числа
Во-вторых, Вы все простые числа будете загонять во множество???
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 21.12.2008, 18:29   #9
Teor
Пользователь
 
Регистрация: 20.12.2008
Сообщений: 46
По умолчанию

Цитата:
Вы все простые числа будете загонять во множество???
У нас же макс. возможное число n=99,а не пару миллионов.

Цитата:
нужен факториал числа
Незнаю нащет факториала, но сума цыфр в програме находиться.
Teor вне форума Ответить с цитированием
Старый 21.12.2008, 18:31   #10
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Teor Посмотреть сообщение
У нас же макс. возможное число n=99,а не пару миллионов.
Почитайте что такое факториал и посчитайте его хотя бы до 20!


В задаче нужно считать сумму цифр факториала
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
Упорядочивание Arkuz БД в Delphi 7 07.11.2008 23:06
Упорядочивание Kopy3 Помощь студентам 4 16.09.2008 17:27
Упорядочивание (сортировка) массиса(Паскаль) NTFS Помощь студентам 1 25.03.2008 20:22