Как найти минимальное число в строке паскаль

0 / 0 / 0

Регистрация: 23.12.2013

Сообщений: 12

1

Поиск минимального элемента в заданной строке

23.12.2013, 16:54. Показов 2497. Ответов 10


Студворк — интернет-сервис помощи студентам

поиск минимального элемента в заданной строке…помогите решить..



0



El41

For i:=0 to 150 do

225 / 105 / 108

Регистрация: 05.01.2012

Сообщений: 286

23.12.2013, 17:08

2

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
a:array[1..10] of integer;
min:integer; i:byte;
begin
for i:=1 to 10 do 
begin
a[i]:=1+random(9);
write(a[i]+' ');
end;
min:=a[i];
for i:=1 to 10 do
  if a[i]<min then min:=a[i];
  WriteLn('min=',min);
  readln;
end.



1



с владимир

0 / 0 / 0

Регистрация: 23.12.2013

Сообщений: 12

25.12.2013, 12:56

 [ТС]

3

Цитата
Сообщение от El41
Посмотреть сообщение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
a:array[1..10] of integer;
min:integer; i:byte;
begin
for i:=1 to 10 do 
begin
a[i]:=1+random(9);
write(a[i]+' ');
end;
min:=a[i];
for i:=1 to 10 do
  if a[i]<min then min:=a[i];
  WriteLn('min=',min);
  readln;
end.

немножко не правильно..
a-матрица
1)надо задать матрицу
2)выводить № строки
3)искать в заданной строке мин.элемент
4)выводить min



0



El41

For i:=0 to 150 do

225 / 105 / 108

Регистрация: 05.01.2012

Сообщений: 286

25.12.2013, 13:10

4

Так с самого начала так бы и написал. Я делал по твоему условию “поиск минимального элемента в заданной строке”

Добавлено через 6 минут

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var
a:array[1..10,1..10] of integer;
i,j,min:byte;
begin
for i:=1 to 10 do
begin
  for j:=1 to 10 do
    begin
    a[i,j]:=1+random(9);
    write(a[i,j],' ');
    end;
    writeln();
    end;
for i:=1 to 10 do
  begin
    min:=a[i,1];
    write(i,'строка');
      for j:=1 to 10 do
        begin
        
        if a[i,j]<min
          then 
            min:=a[i,j];
        end;
    writeln(' ',min,' ');
    end;
 
Readln;
 
end.



0



с владимир

0 / 0 / 0

Регистрация: 23.12.2013

Сообщений: 12

25.12.2013, 13:13

 [ТС]

5

Цитата
Сообщение от El41
Посмотреть сообщение

Так с самого начала так бы и написал. Я делал по твоему условию “поиск минимального элемента в заданной строке”

Добавлено через 6 минут

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var
a:array[1..10,1..10] of integer;
i,j,min:byte;
begin
for i:=1 to 10 do
begin
  for j:=1 to 10 do
    begin
    a[i,j]:=1+random(9);
    write(a[i,j],' ');
    end;
    writeln();
    end;
for i:=1 to 10 do
  begin
    min:=a[i,1];
    write(i,'строка');
      for j:=1 to 10 do
        begin
        
        if a[i,j]<min
          then 
            min:=a[i,j];
        end;
    writeln(' ',min,' ');
    end;
 
Readln;
 
end.

блок схему можеье написать?



0



For i:=0 to 150 do

225 / 105 / 108

Регистрация: 05.01.2012

Сообщений: 286

25.12.2013, 13:16

6

блок схемы не рисую



1



Don_Omare

78 / 80 / 70

Регистрация: 18.12.2013

Сообщений: 211

25.12.2013, 13:42

7

Ну и еще раз

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
const n=4;
var b:array[1..4,1..4] of integer;
    i,j,k,p,min,mini:integer;
    s:array [1..4] of integer;
 begin
  Writeln('Матрица...');
   for i:=1 to 4 do
    Begin
    p:=0;
    for j:=1 to 4 do
     begin
      b[i,j]:=random(90);
      write(B[i,j]:3);
      p:=b[i,j]+p;
      end;
     writeln; 
     S[i]:=p;
     end;
  min:=s[1];
  mini:=1;
 For i:= 2 to 4 do
  begin
  If min > s[i] then
  Begin
  min:=s[i];
  mini:=i;
  End;
  end;
 writeln ( 'Минимумальная сумма ', min );
 writeln ( 'Номер минимумальной строки ', mini);
 end.



0



El41

For i:=0 to 150 do

225 / 105 / 108

Регистрация: 05.01.2012

Сообщений: 286

25.12.2013, 13:58

8

Цитата
Сообщение от Don_Omare
Посмотреть сообщение

Ну и еще раз

Pascal
1
2
3
 writeln ( 'Минимумальная сумма ', min );
 writeln ( 'Номер минимумальной строки ', mini);
 end.

В задание сказано, в матрице в каждой строке найти минимальный элемент, а не минимальную сумму из строк



0



78 / 80 / 70

Регистрация: 18.12.2013

Сообщений: 211

25.12.2013, 14:07

9

Цитата
Сообщение от El41
Посмотреть сообщение

В задание сказано, в матрице в каждой строке найти минимальный элемент, а не минимальную сумму из строк

ааа. точно не дочитал сорри



0



0 / 0 / 0

Регистрация: 23.12.2013

Сообщений: 12

25.12.2013, 14:17

 [ТС]

10

Цитата
Сообщение от El41
Посмотреть сообщение

В задание сказано, в матрице в каждой строке найти минимальный элемент, а не минимальную сумму из строк

а как будет выгледеть программа,есл условие токое?:разобрать алгоритм и программу обработки двумерного массива(матрицы).в алгоритме предусмотреть ввод исходной матрицы ,ее контрольный вывод ,обработку и вывод результирующей матрицы.



0



El41

For i:=0 to 150 do

225 / 105 / 108

Регистрация: 05.01.2012

Сообщений: 286

25.12.2013, 14:25

11

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var
a:array[1..4,1..4] of integer;
i,j,min:byte;
begin
for i:=1 to 4 do
begin
  for j:=1 to 4 do
    begin
    Writeln('введите элемент матрицы a[',i,',',j,']');
    ReadLn(a[i,j]);
    end;
end;
WriteLn('матрица');
for i:=1 to 4 do
begin
  for j:=1 to 4 do
    begin
    write(a[i,j]);
    end;
writeLn;
end;
 
for i:=1 to 10 do
begin
  for j:=1 to 10 do
    begin
    //Обработка
    end;
end;
 
WriteLn('Обработанная матрица');
for i:=1 to 4 do
begin
  for j:=1 to 4 do
    begin
    write(a[i,j]);
    end;
writeLn;
end;
 
 
ReadLn();
end.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

25.12.2013, 14:25

Помогаю со студенческими работами здесь

Поиск номера строки, столбца минимального элемента заданной матрицы
Поиск номера строки столбца минимального элемента заданной матрицы…

Поиск максимального элемента в строке и минимального в столбце
Дана таблица a, состоящая из n строк и n столбцов. Требуется определить, есть ли в таблице такой…

Работа с двумерным массивом. Поиск минимального элемента в строке
Дано задание:

Дана целочисленная прямоугольная матрица. Определить:
• количество отрицательных…

Поиск минимального и максимального элемента в каждой строке (C++ Bulder, консоль)
randomize();
int main(int argc, char* argv)
{
int n,m,i,j,max,min,a;
cout&lt;&lt;&quot;n=&quot;; cin&gt;&gt;n;…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

11

var a:array[1..10,1..10] of integer;
    n,k,i,j,mn,mx:integer;
begin
repeat
write('Введите размер матрицы от 1 до 10 n=');
readln(n);
until n in [1..10];
repeat
writeln('Выберите способ ввода данных 1-датчик случайных чисел 2-с клавиатуры');
readln(k);
until k in [1,2];
if k=1 then
 begin
  randomize;
  for i:=1 to n do
  for j:=1 to n do
  a[i,j]:=-100+random(201);
 end
else
 begin
  for i:=1 to n do
  for j:=1 to n do
   begin
    write('a[',i,',',j,']=');
    readln(a[i,j]);
   end;
 end;
writeln('Матрица');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:5);
  writeln;
 end;
writeln('Минимальные элементы строк');
for i:=1 to n do
 begin
  mn:=a[i,1];
  for j:=2 to n do
  if a[i,j]<mn then mn:=a[i,j];
  write(mn:5);
  if i=1 then mx:=mn else if mn>mx then mx:=mn;
 end;
writeln;
write('Из них максимальный=',mx);
end.

Есть задача:

В прямоугольной матрице в каждой строке поменять местами первый элемент строки и элемент, содержащий минимальное число в строке.

Заполнение и вывод матрицы я сделала. Потом создала еще один одномерный массив, в который переписала строки.

Теперь хочу сравнить элементы строк между собой. Но что-то опять не в ту степь зашла. Как нужно сделать так, чтобы каждая строка рассматривалась отдельно? У меня, кажется, ищется минимальное значение во всей матрице…

И если даже найду минимальное значение в каждой строке, то как поменять первый элемент с минимальным в строке? Наверное, нужна еще какая-то переменная…

function min_v_strokah:integer;
   var i,j : integer;         {peremennie dlya cikla}
       min : integer;         {dlya poiska minimalnogo znacheniya}

   begin
      writeln;

      for i:=1 to a1 do
      begin
         for j:=1 to b1 do
         begin
            sravnenie[j]:=matr[i,j];  {perepisivaem stroki v massiv sravnenie[j]}

            if sravnenie[j] > matr[i,j] then
               begin
                  matr[i,j] := min;

               end;
         end;
            writeln;writeln;
      end;

   end;

На занятии происходит знакомство с логическим типом Boolean в Паскале. Рассматривается алгоритм того, как находится минимальное и максимальное число в Паскале

Сайт labs-org.ru предоставляет лабораторные задания по теме для закрепления теоретического материала и получения практических навыков программирования на Паскале. Краткие теоретические сведения позволят получить необходимый для этого минимум знаний. Решенные наглядные примеры и лабораторные задания изложены по мере увеличения их сложности, что позволит с легкостью изучить материал с нуля. Желаем удачи!

Содержание:

  • Логический тип данных Boolean в Паскале
  • Минимальное и максимальное число в Паскале.
    [Название файла: task_bool4.pas]

Мы уже научились писать программы, основанные на линейных алгоритмах, в Паскале. И даже уже составляем нелинейные алгоритмы — с ветвлением — в которых используются логические выражения, которые принимают значения true или false.

Значения логического типа:

TRUE

FALSE

В примере ниже, на экран выводится результат логического выражения:

1
2
3
4
5
6
var 
  A: integer;
begin
  A := 5;
  write(A > 0); {Будет выведено True}
end.

Для записи результата логического выражения используется специальная логическая переменная, которая имеет в Паскале тип boolean и может также принимать одно из двух значений — true или false.

Посмотрим, как работает та же самая задача с логической переменной:

1
2
3
4
5
6
7
8
var 
  A: integer;
  b: boolean;
begin
  A := 5;
  b:=A > 0; 
  write(b);{Будет выведено True}
end.

Пример: Рассмотрим пример работы с типом boolean в pascal:

1
2
3
4
5
6
var a:boolean;
begin
a:=true;
if a=true then writeln ('истина')
  else writeln('ложь');
end.

Для создания сложных условий используются специальные логические операции: and, or, not и xor.

Задача Boolean 1. Дано целое положительное число. Проверить истинность высказывания: «оно является четным»

[Название файла: task_bool1.pas]

Рассмотрим пример с использованием логической операции XOR:

Пример: Запросить два целых: X, Y. Проверить истинность высказывания: «Только одно из чисел X и Y является нечетным»

1
2
3
4
5
6
7
8
9
10
11
program Boolean;
var
  x,y: integer;
  c :boolean;
 
begin
  write('Введите X, Y: ');
  read(x,y);
  c := (Odd(x)) xor (Odd(y)); 
  writeln('Только одна из переменных X и Y имеет нечетное значение - ', c); 
  end.

Рассмотрим еще одно решение задачи в Паскале с использованием логической переменной:

Задача Boolean 2. Даны три целых числа: A, B, C. Проверить истинность высказывания: «B находится между числами A и C».

[Название файла: task_bool2.pas]

Рассмотрим решение более сложной задачи с переменной логического типа:

Пример: Дано трехзначное число. Проверить истинность высказывания: «Все цифры данного числа различны».

Показать решение:

1
2
3
4
5
6
7
8
9
10
11
12
13
const a=348;
var
   d_n, s_n, e_n: integer;
   flag:boolean;
begin
flag:=false;
s_n:=a div 100;
d_n:=((a mod 100)div 10);
e_n:=a mod 10;
if (s_n<>d_n) and (d_n<>e_n) and (e_n<>s_n) then 
   flag:=true;
writeln(flag);
end.

Здесь каждый разряд получается путем использования операций деления нацело и взятия остатка от деления: s_n — это цифра сотого разряда, d_n — цифра десятого разряда, e_n — единицы.

Задача Boolean 3. Дано целое N > 0. С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2». Если имеется, то вывести TRUE, если нет — вывести FALSE.

[Название файла: task_bool3.pas]

Задача Boolean 4. Дано целое положительное. Проверить истинность высказывания: «Данное число является нечетным трехзначным».

Минимальное и максимальное число в Паскале.

[Название файла: task_bool4.pas]

При организации поиска минимального или максимального числа среди ряда чисел всегда на помощь приходит старенький «бабушкин» алгоритм:

  • Представим ситуацию, что мы жарим пирожки, и уже нажарили целую большую горку; теперь надо выбрать из них самый большой, т.е. в нашем случае максимальный.
  • Берем верхний пирожок, т.е. первый, и говорим, что он пока самый большой и откладываем его в сторону.
  • Затем берем второй и сравниваем с самым большим, если этот второй пирожок оказывается больше — откладываем его на место «бывшего самого большого» и говорим, что теперь он самый большой.
  • Берем следующий и повторяем действия. Так осуществляем данную процедуру со всеми пирожками.

Иногда в качестве первоначального максимума назначается самое малое возможное число (в зависимости от контекста задачи). А в качестве минимума — напротив, самое большое возможное число. Например, если сказано, что необходимо найти максимальное / минимальное среди положительных чисел, меньших 1000, то:

или

max:=integer.MinValue;; // минимальное среди типа Integer
min:=integer.MaxValue;; // максимальное среди типа Integer

PascalABC.NET:

Можно использовать стандартные функции max() и min():

print(max(2,8)); // 8
print(min(2,8)); // 2

Рассмотрим теперь решение задачи на Паскале нахождения максимального числа:

Пример: В компьютер вводятся 10 чисел. Выводить максимальное из введенных чисел.

Показать решение:

Pascal PascalABC.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
var i, chislo, max:integer;
begin
// первое введенное число 
//сразу определяем как максимальное:
readln(max); 
for i:=2 to 10 do
begin
  readln (chislo);
  if chislo > max then 
    max:= chislo
end;
writeln(max)
end.
1
2
3
4
5
6
7
8
9
10
11
12
begin
// первое введенное число 
//сразу определяем как максимальное:
var maximum:=readInteger(); 
for var i:=2 to 10 do
begin
  var chislo:=readInteger();
  // используем стандартную функцию max():
  maximum := max(chislo,maximum); 
end;
writeln(maximum)
end.

Аналогично осуществляется поиск минимального из чисел.

Для лучшего понимания темы поиска максимального или минимального значения предлагаем посмотреть видео урок:

Задача Max 1. В танцевальном клубе участвуют 10 представительниц женского пола. Определите, может ли самая старшая из них быть матерью самой младшей (в таком случае разница в возрасте может составлять не менее 17 лет).

[Название файла: task_max1.pas]

Задача Max 2. Найти минимальное и максимальное из 10 введенных чисел и вывести сумму их порядковых номеров.

[Название файла: task_max2.pas]

Задача Max 3. Средняя продолжительность жизни лабораторной мыши – 10 лет. Найдите максимальный показатель продолжительности жизни у пяти белых мышей и у пяти мышей-альбиносов. У каких мышей показатель уровня жизни выше?

[Название файла: task_max3.pas]

Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

проверь себя

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

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

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

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

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

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

Решение задачи на 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.

Добавить комментарий