Показаны сообщения с ярлыком Задачи. Показать все сообщения
Показаны сообщения с ярлыком Задачи. Показать все сообщения

Вывод максимального и минимального из 3-х чисел

Условия задачи

Входные данные

Входная строка содержит три целых числа, разделённых пробелами.

Выходные данные

В первой строке нужно вывести минимальное из введённых чисел, во второй строке - максимальное.

Обычная задача на проверку знаний условного оператора.

Решение задачи на Pascal
Var 
  a, b, c, max, min: integer;

Begin
  readln(a, b, c);
  max := a;
  min := a;

  If b > max Then
    max := b;
  If c > max Then
    max := c;

  If b < min Then
    min := b;
  If c < min Then
    min := c;

  writeln('Max: ', max, '. Min: ', min);
End.


Немного другой вариант задачи. Если необходимо отсортировать по возрастанию введенные числа:
Var a, b, c, t: Integer;
Begin
  Write('a b c: ');
  ReadLn(a,b,c);
  If b < a Then
    Begin
      t := a;
      a := b;
      b := t;
    End;
  If c < b Then
    Begin
      t := b;
      b := c;
      c := t;
    End;
  If b < a Then
    Begin
      t := a;
      a := b;
      b := t;
    End;
  WriteLn(a);
  WriteLn(c);
End.

Определить самый левый максимальный элемент среди элементов

Условие задачи.

Определить самый левый максимальный элемент среди элементов, стоящих после элемента с заданным номером.
Умножить все элементы массива на найденное максимальное значение, а затем поменять первый элемент и предпоследний.

Решение задачи на Pascal

{ Определить самый левый максимальный элемент среди элементов, стоящих
после элемента с заданным номером, умножить все элементы массива на
найденное максимальное значение, а затем поменять первый элемент
 и предпоследний }

Const 
  n = 15;

Var 
  temp,i : integer;
  max,imax,k : integer;
  a : array [1..n] Of integer;
Begin
  write('Введите номер элемента: ');
  readln(k);
  writeln('Исходный массив:');
  For i:=1 To n Do
    Begin
      a[i] := random(n)-n Div 2;
      write(a[i]:4);
    End;
  writeln;
  max := a[k+1];
  imax := k+1;
  For i:=k+1 To n Do
    If a[i]>max Then
      Begin
        max := a[i];
        imax := i;
      End;
  writeln('Максимальный элемент: ',max,' в позиции: '
          ,imax);
  writeln('Преобразованный массив:');
  For i:=1 To n Do
    Begin
      a[i] := a[i]*max;
      write(a[i]:4);
    End;
  temp := a[n-1];
  a[n-1] := a[1];
  a[1] := temp;
  writeln;
  writeln('Преобразованный массив:');
  For i:=1 To n Do
    Begin
      write(a[i]:4);
    End;
  readln;
End.

Нахождение минимального элемента до побочной диагонали в матрице

Условие задачи.

Квадратную матрицу 13x13 заполнить случайными числами из диапазона [-18..13], вывести ее на экран.
Заменить минимальный из элементов, расположенных на побочной диагонали и выше ее, на произведение элементов, расположенных ниже главной диагонали. Вывести матрицу на экран.

Программа на Pascal по работе с матрицей

Program Matrix;

Var a: array [1..13,1..13] Of integer;
  i,j,min,imin,jmin,n,max: integer;
Begin
  Writeln('Isxodnaya matrix');
  Randomize;
  For i:=1 To 13 Do
    Begin
      For j:=1 To 13 Do
        Begin
          a[i,j] := random(31)-18;
          Write(a[i,j]:5);
        End;
      writeln;
    End;
  min := a[1,1];
  j := 1;
  For n:=13 Downto 1 Do
    Begin
      i := 1;
      While i<>n Do
        Begin
          If min > a[i,j] Then
            Begin
              min := a[i,j];
              imin := i;
              jmin := j;
            End;
          i := i+1;
        End;
      j := j+1;
    End;
  writeln('Minimum = ',min);
  j := 1;
  max := 0;
  For n:=1 To 13 Do
    Begin
      i := 1;
      While i<>n Do
        Begin
          max := a[i,j];
          i := i+1;
        End;
      j := j+1;
    End;
  Writeln('Maximum = ',max);
  writeln ('i=',imin,' j=',jmin);
  a[imin,jmin] := max;
  readln;
  writeln('ismeninniu matrix');
  For i:=1 To 13 Do
    Begin
      For j:=1 To 13 Do
        Write(a[i,j]:5);
      writeln;
    End;
  Readln;
End.

Максимальный элемент массива в Pascal

Часто встречаются задачи, где необходимо найти максимальный элемент в массиве. Рассмотрим общий алгоритм решения такой задачи.

Первое, что придётся сделать – создать массив. Как нам уже известно, нужно использовать цикл с параметром. Также удобнее будет создать массив случайным образом, если в условии задачи не оговорён способ задания массива.

Алгоритм нахождения максимального элемента массива выполняется следующим образом.

Задача о нахождении факториала

Как пример к статье о операторном цикле с постусловием, предлагаю вам решенную задачу на нахождение факториала.

Программа на Pascal
Program factorial ;
Var i, n : integer ;
 p : real ;
Begin
 Writeln('Введите количество чисел N') ;
 Readln(N) ;
 P := 1 ;
 I := 1 ;
 Repeat 
  P := P*I ;
  I := I+1 
 Until I > N ;
Writeln(' Фактериал равен = ', p:0:0) ;
Readln ;
End.

Посчитать факториал числа

Задача.
Посчитать сумму N! (N - факториал).

Блок-схема

Программа на Pascal
Program factorial;
Var i,n:integer;
 factorial:real;
Begin
 Writeln('Введите N');
 Readln(N);
 factorial:=1;
 for i:=1 to N do
  factorial:=factorial*i;
 Writeln('Факториал N чисел равен = ',factorial:0:2);
 Readln;
End.

Сумма A чисел

Задача с оператором цикла с параметром.
Условие :
Сумма A чисел : S=a+a+...+a+a.
Программа на Pascal

Program summa_a;
Var i,n:integer;
 a,S:real;
Begin
 Writeln('Введите a, N');
 Readln(a,N);
 S:=0;
 for i:=1 to N do
  S:=S+a;
 Writeln('Сумма равна = ',S:0:2);
 Readln;
End.

Таким образом вам может пригодиться следующая Задача на подсчет суммы цифр у числа.
Такие задачи просты и поняты для начинающих программистов на языке Pascal.

Вычисление суммы цифр заданного числа

Задача.
Написать программу вычисления суммы цифр заданного четырехзначного целого числа.

Программа на Pascal

Program  summ;
Var a,b,c,d,n,summa:integer;
Begin
     writeln('Введите четырехзначное число ');
     readln(n);
     a:=n mod 10;
     b:=n div 1000;
     c:=(n mod 100) div 10;
     d:=(n mod 1000) div 100;
     summa:=a+b+c+d;
     writeln('Сумма равна ',summa);
Readln;
End.

Нахождения максимального элемента

Нахождения максимального элемента

Написать алгоритм нахождения максимального элемента из 3-х значений.

Блок – схема


Программа на Pascal

Program Pr_1;
Var a,b,c,max:real;
Begin
 Writeln(‘Введите числа a,b,c ’);
 Readln(a,b,c);
 If a>b then max:=a
 Else max:=b;
 If c>max then max:=c;
 Writeln(‘max = ’,max);
 Readln; { это задержка экрана }
End.

Принадлежит ли точка выделенной области графика

Задача №1 :

Точка задана своими координатами (x, y). Написать программу, которая используя логическое выражение выводит TRUE, если точка принадлежит заштрихованной области и FALSE - если не принадлежит.

Решение задачи

Program  logistika;
Var b:boolean;
    x,y:real;
Begin
     write('Введите x ');
     readln(x);
     write('Введите y ');
     readln(y);
     b:=( y>=-x-1 ) and ( y>=x-1 ) and ( y<=x+1 ) and (y<=1-x );
     writeln(b);
     Readln;
End.