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 |
|||
1 |
с владимир 0 / 0 / 0 Регистрация: 23.12.2013 Сообщений: 12 |
||||
25.12.2013, 12:56 [ТС] |
3 |
|||
немножко не правильно..
0 |
El41 For i:=0 to 150 do 225 / 105 / 108 Регистрация: 05.01.2012 Сообщений: 286 |
||||
25.12.2013, 13:10 |
4 |
|||
Так с самого начала так бы и написал. Я делал по твоему условию “поиск минимального элемента в заданной строке” Добавлено через 6 минут
0 |
с владимир 0 / 0 / 0 Регистрация: 23.12.2013 Сообщений: 12 |
||||
25.12.2013, 13:13 [ТС] |
5 |
|||
Так с самого начала так бы и написал. Я делал по твоему условию “поиск минимального элемента в заданной строке” Добавлено через 6 минут
блок схему можеье написать?
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 |
|||
Ну и еще раз
0 |
El41 For i:=0 to 150 do 225 / 105 / 108 Регистрация: 05.01.2012 Сообщений: 286 |
||||
25.12.2013, 13:58 |
8 |
|||
Ну и еще раз
В задание сказано, в матрице в каждой строке найти минимальный элемент, а не минимальную сумму из строк
0 |
78 / 80 / 70 Регистрация: 18.12.2013 Сообщений: 211 |
|
25.12.2013, 14:07 |
9 |
В задание сказано, в матрице в каждой строке найти минимальный элемент, а не минимальную сумму из строк ааа. точно не дочитал сорри
0 |
0 / 0 / 0 Регистрация: 23.12.2013 Сообщений: 12 |
|
25.12.2013, 14:17 [ТС] |
10 |
В задание сказано, в матрице в каждой строке найти минимальный элемент, а не минимальную сумму из строк а как будет выгледеть программа,есл условие токое?:разобрать алгоритм и программу обработки двумерного массива(матрицы).в алгоритме предусмотреть ввод исходной матрицы ,ее контрольный вывод ,обработку и вывод результирующей матрицы.
0 |
El41 For i:=0 to 150 do 225 / 105 / 108 Регистрация: 05.01.2012 Сообщений: 286 |
||||
25.12.2013, 14:25 |
11 |
|||
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
25.12.2013, 14:25 |
Помогаю со студенческими работами здесь Поиск номера строки, столбца минимального элемента заданной матрицы Поиск максимального элемента в строке и минимального в столбце Работа с двумерным массивом. Поиск минимального элемента в строке Дана целочисленная прямоугольная матрица. Определить: Поиск минимального и максимального элемента в каждой строке (C++ Bulder, консоль) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 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
]
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 | ||||
|
|
Аналогично осуществляется поиск минимального из чисел.
Для лучшего понимания темы поиска максимального или минимального значения предлагаем посмотреть видео урок:
Задача 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.