Студопедия

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

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

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






Линейные массивы. Описание типа






Дли описания массива предназначено словосочетание

Array [нач.индекс.. конечный индекс ] of < Тип компонент>

Многомерные массивы. Двухмерные массивы – матрицы.

Если в качестве базового типа взят другой массив, образуется структура, которую принято называть многомерным массивом.

 

Упорядочивание по возрастанию элементов массива из 20 целых величин.

Для сортировки будем использовать метод выбора. Алгоритм состоит в том, что сначала выбирается наименьший элемент массива и меняется местами с первым элементом, затем просматриваются элементы, начиная со второго, и наименьший из них меняется местами со вторым элементом, и так далее n – 1 раз. На последнем проходе цикла при необходимости меняются местами предпоследний и последний элементы массива.

Вариант 9

1. Напишите программу, которая вводит с клавиатуры 20 дробных чисел, организовывает их хранение в одномерном массиве, а затем определяет среднее арифметическое элементов с четными индексами, и среднее арифметическое элементов с нечётными номерами. Результат выдаётся на экран пользователя.

(Написать 2 варианта программы – ввод чисел с клавиатуры и заполнение массива случайным образом с выводом массива и результатов).

Тело программы(ввод с клавиатуры):

Program z2;

Var

mas: array [1..20] of integer;

a, c, e, k, l, g: integer; d, r: real;

Begin

c: =0;

for a: =1 to 20 do

Begin

writeln('введите число');

readln(mas[a]);

c: =c+mas[a];

if mas[a] mod 2=0 then

Begin

e: =e+mas[a];

k: =k+1;

r: =e/k;

end;

if mas[a] mod 2> 0 then

l: = l+mas[a];

g: =g+1;

d: =l/g;

end;

writeln('среднее арифметическое элементов с нечетными номерами ', r);

writeln('среднее арифметическое элементов с чётными индексами ', d);

end.

Блок-схема:

 

 

Тело программы(рандом):

Program z2;

Var

mas: array [1..20] of integer;

a, c, e, k, l, g: integer; d, r: real;

Begin

c: =0;

for a: =1 to 20 do

Begin

mas[a]: =random(20);

write (mas[a], ' ');

 

if mas[a] mod 2=0 then

Begin

e: =e+mas[a];

k: =k+1;

r: =e/k;

end;

if mas[a] mod 2> 0 then

l: = l+mas[a];

g: =g+1;

d: =l/g;

end;

writeln('среднее арифметическое элементов с нечетными номерами ', r);

writeln('среднее арифметическое элементов с чётными индексами ', d);

end.

Блок-схема:

 

Тело программы(упорядоченный):

Program z2;

Var

mas: array [1..20] of integer;

a, c, e, k, l, g: integer; d, r: real;

Begin

c: =0;

for a: =1 to 20 do

Begin

mas[a]: =random(20);

write (mas[a], ' ');

if mas[a] mod 2=0 then

Begin

e: =e+mas[a];

k: =k+1;

r: =e/k;

end;

if mas[a] mod 2> 0 then

l: = l+mas[a];

g: =g+1;

d: =l/g;

end;

writeln('среднее арифметическое элементов с нечетными номерами ', r);

writeln('среднее арифметическое элементов с чётными индексами ', d);

end.

 

 

Блок-схема:

 

Лабораторная работа №10

«Расчет отметок проектной линии на вертикальной выпуклой или вогнутой кривой»

1. Цель лабораторной работы: научиться на практике использовать массивы и операторы циклов на примере разработки программы для расчета отметок проектной линии на вертикальной кривой, использовать процедуры модуля CRT для вывода на экран результатов в табличной форме.

Составить программу (с использованием массивов) по расчету отметок проектной линии на вертикальной выпуклой или вогнутой кривой и вывести результаты в табличной форме.

Дано: пикетное положение (РКВ и PS) и отметка вершины кривой (НВ), вид кривой «выпуклая» или «вогнутая», шаг разбивки (S) и число рассматриваемых точек (N) вправо или влево от вершины, радиус кривой (R). Требуется вычислить пикетное положение этих точек и их отметки, округлив их до 0, 01

 

 

Вариант№5

    98.62   выпукл. влево 234.46    

 

 

Тело программы:

Program z4;

 

Var

pk1: array [1..6] of real;

pk: array [1..6] of real;

y: array [1..6] of real;

h: array [1..6] of real;

ps1: array [1..6] of real;

i, l: integer;

r, e, hb, s, pks: real;

Begin

pks: =34*100+98.62;

hb: =234.46;

r: =4500;

for i: =1 to 6 do begin

l: =45*i;

pk[i]: =pks-(l);

y[i]: =sqr (l)/(2*r);

h[i]: =hb-y[i];

pk1[i]: = trunc (pk[i]/100);

ps1[i]: = (pk[i]-pk1[i]*100);

{writeln ('координата в метрах ', pk[i]);

writeln ('координта в пк ', pk1[i]);

writeln ('плюсы ', ps1[i]);

writeln ('превышение в метрах ', y[i]: 4: 4);

writeln ('высота ', H[i]: 4: 4); }

end;

write('Координата в пк ');

for i: =1 to 6 do write('', pk1[i]: 8: 2);

writeln;

write ('координата в метрах ');

for i: =1 to 6 do write (' ', pk[i]: 8: 2);

writeln;

write ('плюсы');

for i: =1 to 6 do write (' ', ps1[i]: 8: 2);

writeln;

write ('превышение в м');

for i: =1 to 6 do write (' ', y[i]: 8: 2);

writeln;

write ('высота');

for i: =1 to 6 do write (' ', H[i]: 8: 2);

end.

 






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