Показать сообщение отдельно
Старый 22.11.2011, 12:04   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Получите:
Цитата:
Сообщение от nadya88 Посмотреть сообщение
1. С клавиатуры вводятся длина (<=100) вектора и его (целые) элементы. Посчитать произведение элементов, которые оканчиваются на цифру 1. Результаты вывести на экран.
2. С клавиатуры вводятся длина (<=100) вектора и его (целые) элементы. Составить новый вектор, записав в него для каждого элемента исходного вектора количество его цифр. Результаты вывести на экран.
3. С клавиатуры вводятся длина (<=100) вектора и его (целые) элементы. Удалить из вектора все элементы, которые являются совершенными числами. Результаты вывести на экран.
Код:
Uses CRT;
VAR
 N:Byte;
 A:Array[1..100] of Word;
 F:Array[1..100] of Byte;
 P:Extended;
 i,k:Byte;

Function Perf(Z:Word):Boolean;
 var j,Sum:Word;
begin
 Sum:=0;
 for j:=(Z div 2) downto 1 do
  if (Z mod j)=0 then Sum:=Sum+j;
 Perf:=(Z=Sum);
end;

BEGIN
 ClrScr;
 Write('Number of elements= ');
 Readln(N);
 For i:=1 to N do
  begin
   Write('A[',i:2,']= ');
   Readln(A[i]);
  end;
 ClrScr;
 Writeln('Initial array:');
 For i:=1 to N do
  Write(A[i]:4);
 Writeln;
 Writeln;
 P:=1;
 For i:=1 to N do
  If (A[i] mod 10)=1 then P:=P*A[i];
 Writeln('The product of elements ending with "1" is ',P:0:1);
 Writeln;
 Writeln('Number of figures of elements:');
 For i:=1 to N do
  begin
   If A[i]=0 then
    F[i]:=1
   else
    F[i]:=TRUNC(Ln(A[i])/Ln(10))+1;
   write(F[i]:4);
  end;
 Writeln;
 Writeln;
 Writeln('The initial array with perfect numbers excluded:');
 i:=1;
 Repeat
  If Perf(A[i]) then
   begin
    for k:=i+1 to N do
     A[k-1]:=A[k];
    Dec(N);
   end;
  Inc(i);
 Until i>N;
 For i:=1 to N do write(A[i]:4);

 Readln
END.
Цитата:
Сообщение от nadya88 Посмотреть сообщение
4. С клавиатуры вводятся размеры (<=100x100) матрицы и её (целые) элементы. Составить вектор номеров строк, в которых есть хотя бы один элемент, который делит 120. Результаты вывести на экран.
Код:
Uses CRT;
TYPE
 Vector=Array[1..100] of Word;
VAR
 N:Byte;
 A:Array[1..100] of Vector;
 Num:Array[1..100] of Byte;
 i,j,Nd:Byte;

Function Div120(R:Vector):Boolean;
var
 k:Byte;
 b:boolean;
begin
 b:=false;
 k:=0;
 Repeat
  Inc(k);
  If R[k]>1 then
   If (120 mod R[k])=0 then b:=true;
 Until b or (k=N);
 Div120:=b;
end;

BEGIN
 ClrScr;
 Write('N= ');
 Readln(N);
 For i:=1 to N do
  For j:=1 to N do
   begin
    Write('A[',i:2,'][',j:2,']= ');
    Readln(A[i][j]);
   end;
 ClrScr;
 Writeln('Initial matrix:');
 For i:=1 to N do
  begin
   For j:=1 to N do
    Write(A[i][j]:4);
   Writeln;
  end;
 Writeln;
 Writeln;
 Nd:=0;
 For i:=1 to N do
  If Div120(A[i]) then
   begin
    Inc(Nd);
    Num[Nd]:=i;
   end;
 Writeln('Numbers of lines, containing the 120 divisors:');
 If Nd=0 then
  Writeln('No such lines')
 else
  For i:=1 to Nd do write(Num[i]:4);

 Readln
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070