Определить, симметрично ли число

sani9989

решить задачи по делфи после завтра экзамен помогите пожалуйста 1.Дано целое число. Определить, симметрично ли оно, т.е. одинаковы ли цифры слева и справа (12321). 2.Дан одномерный целочисленный массив. Найти сумму элементов массива, расположенных после первого положительного элемента. 3.Даны квадратные матрицы A и B порядка n. Получить матрицу АВ-ВА. 4.Задан двухмерный массив целых чисел A размером N на M. Найти: число элементов A[I,J]
1 ответ

sani9989

1.
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, Windows;
 
Var
  i,j,t : Integer;
  b : Boolean;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
//  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  Write('Введите число  > ');
  ReadLn(i);
 
  //Проверить симметрично ли число
  j:=0;
  Repeat
    t:=j; //Запоминаем на случай если число цифр нечётное
    j:=j*10+(i Mod 10); //Младшую цифру
    i:=i Div 10;            //переносим из i в конец j
    b:=(i=j) Or (i=t);
  Until b Or (j>i); //Конец цикла - если число симметрично или перенесённое число превысило оставшееся
 
  If b Then
  WriteLn('Число симметрично!') Else
  WriteLn('Число не симметрично!');
  ReadLn; //Ожидаем нажатия клавиши пользователем
end.
2.
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, Windows;
 
Const
  n = 15;
Var
  i,Sum : Integer;
  b : Boolean;
  Arr : Array[1..n] Of Integer;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
//  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  //Заполнение массива случайными числами
  Randomize;
  For i:=1 To n Do
  Arr[i]:=Random(100)-50; //Случ.число от -50 до 49
 
  //Выведем массив на экран
  WriteLn;
  For i:=1 To n Do
  Write(Arr[i],' ');
  WriteLn;
 
  //Считаем сумму
  Sum:=0;
  b:=False; //Признак того, что первое положительное не найдено
  For i:=1 To n Do
  If b Then
  Sum:=Sum+Arr[i] Else
  If Arr[i]>=0 Then
  b:=True;
 
  WriteLn('Искомая сумма : ',Sum);
  ReadLn; //Ожидаем нажатия клавиши пользователем
end.
3.
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, Windows;
 
Const
  n = 5;
Type
  Matr = Array[1..n,1..n] Of Integer;
 
//Заполнение матрицы случайными числами
Procedure FillMatr(Var m:Matr);
Var
  i,j : Integer;
Begin
  For i:=1 To n Do
  For j:=1 To n Do
  m[i,j]:=Random(100)-50; //Случ.число от -50 до 49
End;
 
//Выдача матрицы на экран
Procedure PrintMatr(Var m:Matr);
Var
  i,j : Integer;
Begin
  For i:=1 To n Do
  Begin
    For j:=1 To n Do
    Write(m[i,j]:10);
    WriteLn;
  End;
  WriteLn;
End;
 
//Произведение двух матриц
Procedure MulMatr(Var a,b,c:Matr);
Var
  i,j,k : Integer;
Begin
  For i:=1 To n Do
  For j:=1 To n Do
  Begin
    c[i,j]:=0;
    For k:=1 To n Do
    c[i,j]:=c[i,j]+a[i,k]*b[k,j];
  End;
End;
 
Var
  i,j : Integer;
  a,b,c,d : Matr;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
//  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  //Заполнение матриц случайными числами
  Randomize;
  FillMatr(a);
  FillMatr(b);
  //Выдадим матрицы на экран
  WriteLn('Матрица A');
  PrintMatr(a);
  WriteLn('Матрица B');
  PrintMatr(b);
 
  MulMatr(a,b,c); // A*B -> C
  MulMatr(b,a,d); // B*A -> D
 
  //Получим C-D
  For i:=1 To n Do
  For j:=1 To n Do
  c[i,j]:=c[i,j]-d[i,j];
 
  //Выдадим результирующую матрицу на экран
  WriteLn('Матрица С');
  PrintMatr(c);
 
  ReadLn; //Ожидаем нажатия клавиши пользователем
end.
4.
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, Windows;
 
Const
  n = 5;
  m = 7;
Type
  Matr = Array[1..n,1..m] Of Integer;
 
//Заполнение матрицы случайными числами
Procedure FillMatr(Var mm:Matr);
Var
  i,j : Integer;
Begin
  For i:=1 To n Do
  For j:=1 To m Do
  mm[i,j]:=Random(100)-50; //Случ.число от -50 до 49
End;
 
//Выдача матрицы на экран
Procedure PrintMatr(Var mm:Matr);
Var
  i,j : Integer;
Begin
  For i:=1 To n Do
  Begin
    For j:=1 To m Do
    Write(mm[i,j]:10);
    WriteLn;
  End;
  WriteLn;
End;
 
Var
  i,j,t,Count : Integer;
  Mul : Int64;
  a : Matr;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
//  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  Write('Введите число Т для сравнения элементов > ');
  ReadLn(t);
 
  //Заполнение матрицы случайными числами
  Randomize;
  FillMatr(a);
  //Выдадим матрицу на экран
  WriteLn('Матрица A');
  PrintMatr(a);
 
  //Найдём элементы меньшие T и перемножим их
  Mul:=1; Count:=0;
  For i:=1 To n Do
  For j:=1 To m Do
  If a[i,j]<t Then
  Begin
    Inc(Count);
    Mul:=Mul*a[i,j];
  End;
 
  If Count=0 Then
  WriteLn('Таких элементов не найдено') Else
  Begin
    WriteLn('Количество найденных элементов = ',Count);
    WriteLn('Произведение найденных элементов = ',Mul);
  End;
  ReadLn; //Ожидаем нажатия клавиши пользователем
end.
5.
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, Windows;
 
Var
  s,s1 : String;
  i : Integer;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
//  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  Write('Введите строку из цифр (все другие символы будут удалены) > ');
  ReadLn(s);
  //Удаляем все символы кроме цифр
  s1:='';
  For i:=1 To Length(s) Do
  If s[i] In ['0'..'9'] Then s1:=s1+s[i];
 
  WriteLn('Рабочая строка (только цифры):');
  WriteLn(s1);
  WriteLn;
 
  //Ищем цифры кратные 3
  s:='';
  i:=1;
  Repeat
    If s1[i] In ['3','6','9'] Then
    Begin
      s:=s+s1[i];
      Delete(s1,i,1); //Удаляем символ
      Continue; //Без наращивания индекса
    End;
    Inc(i);
  Until i>Length(s1);
 
  WriteLn('Строка без цифр, кратных 3:');
  WriteLn(s1);
  WriteLn;
  WriteLn('Строка из цифр, кратных 3:');
  WriteLn(s);
  WriteLn;
 
  ReadLn; //Ожидаем нажатия клавиши пользователем
end.