
5. Пример решения задачи.
Индивидуальное задание.
Найти максимальное значение в массиве вещественных чисел.
5.2. Описание работы.
5.2.1. Выберите алгоритм решения задачи.
5.2.2. Выберите форму представления данных. Используйте следующие типы переменных: INTEGER, REAL, BOOLEAN, CHAR.
5.2.3. Для ввода массива используйте генератор случайных чисел или вводите элементы в диалоговом режиме. Результат решения задачи выведите на экран дисплея.
5.2.4. Выберите имена основных идентификаторов. Выберите тип индекса и тип элементов массива. Обратите внимание на форму описания двумерных массивов. Введите текст программы.
5.2.5. Для этого необходимо войти в программу-оболочку TP7, как указано выше. Загрузить в редактор Турбо-Паскаль новый (NEW) файл. Для этого нажмите одновременно клавиши [ALT]+[F] , установите курсор на подменю «NEW» и нажмите клавишу [ENTER].
5.2.6. Сохраните набранный текст программы. Нажмите клавишу [F2]. На запрос системы укажите, где и с каким именем будет сохранена ваша программа. Например, C:\PROG.PAS, если программа сохраняется на жесткий диск или A:\PROG.PAS, если программа сохраняется на дискету.
5.2.7. После того, как программа набрана, откомпилируйте ее. Нажмите одновременно клавиши [ALT]+[F9]. Если в программе есть ошибки, то в левом верхнем углу появится сообщение об ошибке, а курсор укажет место ошибки. Если в программе ошибок нет, то появится сообщение об успешной компиляции.
5.2.8. После компиляции программу необходимо выполнить. Для этого нажмите одновременно клавиши [CTRL]+[F9]. Для просмотра результатов одновременно нажмите клавиши [ALT]+[F5].
5.2.9. Убедитесь в правильности решения задачи. Введите данные, для которых легко устно просчитать результат. Выполните программу и убедитесь в правильности полученного результата.
Выведите полученные результаты на печать.
Текст программы.
program max ;
uses crt ;
const m=10 ; n=20 ;
var i,j: m..n ;
x:array[m..n] of real ;
begin
clrscr ;
for i:=m+1 to n do
read(x[i]) ;
j:=m ;
for i:=m+1 to n do
if x[i]>x[j] then j:=i ;
writeln(x[j]:3:1) ;
readln
end .
Примеры решения задач.
Пример 1:
Элементы массива переставить таким образом, чтобы их значения были расположены в убывающем порядке.
Текст программы:
program sortmin ;
Uses crt ;
const n=5 ;
var i , u : integer ;
a : boolean ;
x : array[1..n] of integer;
begin
clrscr ;
for i := 1 to n do
read(x[i]) ;
a := false ;
while not a do
begin
a := true ;
for i := 1 to n-1 do
if x[i] < x[i+1] then
begin
u := x[i] ;
x[i] := x[i+1] ;
x[i+1] := u ;
a := false ;
end ;
write( x[i], ' ' ) ;
end ;
for i := 1 to n do
write( x[i], ' ' ) ;
readln ;
readln
end .
Пример 2:
Дан двухмерный массив различных вещественных чисел,
содержащий 5 строк и 4 столбца. Строку, содержащую МАХ
элемент массива, поменять местами со строкой, содержащей
МIN элемент.
program mas ;
type mmm = array[1..4] of real;
var m: array[1..5] of mmm ;
m1 : mmm ;
max, min : real ; maxi, mini, i, j : integer ;
begin
writeln('Введи исходный массив : ') ;
for i := 1 to 5 do
for j := 1 to 4 do
read(m[i,j]) ;
max := m[1,1] ; min := m[1,1] ;
maxi := 1 ; mini := 1;
for i := 1 to 5 do
for j := 1 to 4 do
begin
if max < m[i,j] then
begin
max := m[i,j] ; maxi := i ;
end ;
if min > m[i,j] then
begin
min := m[i,j] ; mini := i ;
end ;
end ;
m1 := m[maxi] ;
m[maxi] := m[mini] ;
m[mini] := m1 ;
writeln('Массив после перестановки строк :') ;
for i := 1 to 5 do
begin
for j := 1 to 4 do
write(m[i,j] : 5 : 2);
writeln ;
end
end .