Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задача 13. Процедура упорядочивания массива выбором.






 

Решение

Procedure choice(n: integer);

var

i, j, k, p: integer;

begin

for i: = 1 to n do

Begin

k: = i;

for j: = i + 1 to n do if x[j] < x[k] then k: = j;

p: = x[i]; x[i]: = x[k]; x[k]: = p

end;

writeln('Упорядоченный массив');

for i: = 1 to n do write(x[i], ' '); writeln

end;

 

Задача 14. Вычислить значение многочлена используя формулу Горнера. Коэффициенты полинома удобно представить массивом (2; 0; -1; 4; 0; 0; -5; 6; 1). Порядок полинома n равен 8.

Решение

Способ

Program Problem14;

uses WinCrt;

const

n = 8;

type

t = array [1..n+1] of real;

var

a: t;

y, x: real;

i: integer;

{----------------------------------------------------------------------------------------}

Procedure gorner(x: real; a: t; var y: real);

var

i: integer;

begin

y: = a[1];

for i: = 2 to n + 1 do y: = y*x + a[i];

writeln('Значение многочлена равно ', y: 6: 6)

end;

{----------------------------------------------------------------------------------------}

Begin

for i: = 1 to n + 1 do

Begin

write('Введите ', i, '-й коэффициент ');

readln(a[i])

end;

writeln('Коэффициенты полинома');

for i: = 1 to n + 1 do write(a[i]: 3: 3, ' ');

writeln;

write('Введите значение аргумента x '); readln(x);

gorner(x, a, y)

end.

Способ

Program Problem14a;

uses WinCrt;

const

n = 8;

type

t = array [1..n+1] of real;

var

a: t; y, x: real; i: integer;

{----------------------------------------------------------------------------------------}

Procedure polynomial(k: integer; x: real; var y: real);

label 1;

begin

if k = -1 then goto 1

else

begin

y: = y*x + a[n-k+1];

polynomial(k-1, x, y)

end;

1: end;

{----------------------------------------------------------------------------------------}

begin

for i: = 1 to n + 1 do

Begin

write('Введите ', i, '-й коэффициент '); readln(a[i])

end;

write('Введите значение аргумента x '); readln(x);

polynomial(n, x, y);

writeln('Значение многочлена равно ', y: 6: 6)

end.

 

Задача 15. Процедура " решето Эратосфена".

 

Решение

Procedure eratosfen(n: integer; a: t; var c: t; var k: integer);

var

f, i, j, b: integer;

begin

f: = trunc(sqrt(n));

for i: = 2 to f do

Begin

if a[i] < > 0 then

Begin

b: = a[i];

j: = b*2;

while j < = n do

begin

if a[j] < > 0 then

begin

if a[j] mod b = 0

then a[j]: = 0;

j: = j + b

end

else

j: = j + b

end

End

End;

k: = 0;

for i: = 2 to n do

if a[i] < > 0 then

Begin

k: = k + 1;

c[k]: = a[i]

end;

End;

 

Задача 16. Рассмотрим программу ввода с клавиатуры третьего массива чисел с последующим выводом в виде таблицы на экран.

Решение

Program Problem16;

uses WinCrt;

const

m = 4; n = 5;

type

s = array [1..m] of integer;

t = array [1..n] of s;

var

a: t;

i, j: integer;

begin

for i: = 1 to n do

for j: = 1 to m do

begin

write('Введите элемент ', i, '-й строки ');

write(j, '-го столбца '); readln(a[i, j])

end;

writeln('Заданный двумерный числовой массив');

for i: = 1 to n do

begin

for j: = 1 to m do write(a[i, j]: 6, ' ');

writeln

end

end.

 

Задача 17. В двумерном массиве найдите наибольшие элементы каждой строки.

Решение

Program Problem17.;

uses WinCrt;

const

n = 4; m = 5;

type

s = array [1..m] of integer;

t = array [1..n] of s;

st = array [1..n] of integer;

var

a: t;

b: st;

{----------------------------------------------------------------------------------------}

Procedure create_two(n, m: integer; var a: t);

var

i, j: integer;

begin

writeln('Заданный двумерный массив целых чисел');

randomize;

for i: = 1 to n do

begin

for j: = 1 to m do

Begin

a[i, j]: = random(201) - 100;

write(a[i, j]: 6, ' ')

end;

writeln

End

End;

{----------------------------------------------------------------------------------------}

Procedure maxim_line(n, m: integer; a: t; var b: st);

var

i, j: integer;

begin

for i: = 1 to n do

Begin

b[i]: = a[i, 1];

for j: = 1 to m do

if a[i, j] > b[i] then b[i]: = a[i, j];

end;

writeln('Наибольшие элементы каждой строки массива');

for i: = 1 to n do write(b[i]: 6, ' ');

writeln

end;

{----------------------------------------------------------------------------------------}

Begin

create_two(n, m, a);

maxim_line(n, m, a, b)

End.

Задача 18. Сформировать матрицу размерности из случайных чисел от 1 до 100. Расположить их в порядке возрастания по следующей схеме (см. рис.):






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.