Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2360

.pdf
Скачиваний:
9
Добавлен:
15.05.2015
Размер:
340.34 Кб
Скачать

Программирование прикладных задач линейной и ветвящейся структуры

1.Дана длина ребра куба. Найти площадь основания, площадь боковойНИ поверхности и объём куба. Г

2.Даны вещественные числа х и у. Вычислить: х у + 2 . А

тка7. Даны координаты вершин треугольника А(хоу ), В(х ,у ), С(х ,у )заменитьи точки

 

 

М(a, b) на плоскости. Определите,

 

 

и

1,

1

2

2

3

3

 

 

пр надлежит ли точка М внутренней

 

 

области треугольника.

 

 

 

 

л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8. Даны

два числа. Если они оба отрицательны, то каждое значение

 

 

заменить его модулем; если отрицательно только одно из них, то оба

 

 

значения увеличить на 0.5; если о а значения неотрицательны, то оба

 

 

числа увеличить в 10 раз.

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ìn3

- 5, если n = 1;и2;6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ронная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9. Вычислить:

ïn,

 

если n = 7;8;9;10;11;12

.

 

 

 

 

 

 

 

 

y = í

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï1+ n, если n =

3;4;5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

î51n, в остальных случаях

 

 

 

 

 

 

 

 

10. Дана

точка М(х, у). Проверить, лежит ли данная точка внутри

 

 

заштрихованной области, представленной на рисунке:

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

Y

 

3

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-5

к

 

5

 

a)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

-3 -1

 

 

 

1

3

 

 

 

 

 

е

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Э

л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программирование прикладных задач линейной и ветвящейся структуры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Контрольные вопросы:

 

 

 

 

 

 

 

 

 

 

 

1.

Какие операторы ветвления существуют в языке Pascal?

 

 

 

 

 

 

2.

Каковы различия между полной и сокращенной формой оператора IF?

 

 

 

 

3.

Каков вид оператора Case в языке Pascal?

 

 

 

Г

НИ

 

 

 

Задания для самостоятельного выполнения.

 

 

 

 

 

 

 

 

 

 

 

 

 

Составьте программу решения следующих задач:

 

 

 

1.

У пирамиды основанием служит квадрат. Найдите площадь основания и

 

 

 

 

 

 

 

 

 

 

 

 

 

ка

Аи диагональ

 

 

 

 

объем пирамиды, если известны высота пирамиды

 

 

 

 

основания.

 

 

 

 

 

 

е

 

 

 

2.

Даны два действительных числа a и b. Получить их сумму, разность и

 

 

 

 

произведение.

 

 

 

 

 

 

 

 

 

 

3.

Даны x, y, z. Вычислить a и b, если: a=x+2yz, b=3xyz +43.

 

 

4.

 

 

 

 

 

 

о

 

 

 

 

 

Дано число а. Не используя никаких функций и никаких операций кроме

 

 

 

 

умножения, получить: а19 за шесть операций. т

 

 

 

 

5.

Дано вещественное число х. Вычисл ть, если возможно,

x 20.8 . Если

 

 

 

 

 

 

 

 

 

 

б

сообщение.

 

 

 

 

 

 

вычислить нельзя, то сделать соответствующееи

 

 

 

 

 

 

 

 

ì2n6 , если n =1;2;л...;16

 

 

 

 

 

6.

Вычислить:

ï3

 

 

если n

=17;19; 22

 

. В противном случае

 

 

 

y = í n,

 

 

 

 

 

 

 

ï

 

 

+ 2,беслии

n = 23;44;35

 

 

 

 

 

 

 

 

 

 

îln n

 

 

 

 

7.Для трёхроннаяданных чисел найти среднеарифметическое положительных из них. Если таковых нет, сделать об этом сообщение.перпендикулярнот каждой из сторон отверстия. или

 

л

е

к

Э

 

 

 

 

 

22

 

 

 

Программирование прикладных задач циклической структуры

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

 

 

 

Программирование прикладных задач циклической

структуры с использованием циклов For, While, Repeat

Цель работы.

 

 

НИ

Приобретение навыков составления программ циклической структуры на

алгоритмическом языке Pascal.

А

Г

 

 

 

Теоретическая часть.

 

 

В алгоритмическом языке Pascal для организации

цикла используют

различные операторы. Выбор того или иного оператора зависитка от начальных данных, типа параметра цикла, шага, с которым изменяется параметр цикла и

 

 

 

 

 

 

 

 

 

 

о

операторы цикла с

т.д. По способу организации таких повторений различаюте

заданным числом повторений (с параметром) и ператорыт

цикла, управляемые

условиями. В языке Турбо Паскаль

 

 

и

 

оператор цикла с

определены один

 

 

 

 

 

 

 

 

л

 

 

 

параметром и два оператора цикла, управляемые условиями.

 

 

 

 

 

 

 

б

 

 

 

 

 

Оператор цикла с параметром испо ьзуется в тех случаях, когда число

 

 

 

 

 

 

и

 

 

 

 

 

повторений оператора тела цикла известно заранее.

 

 

 

 

 

 

б

 

 

 

 

 

 

 

Циклы с параметром организуют с помощью оператора FOR.

 

Данный оператор цикла имеет вид:

 

 

 

 

 

 

 

 

 

ронная

 

 

 

 

 

 

 

 

FOR i:= A to B do оператор;

 

 

 

 

 

 

 

 

где: i - параметр цикла; А - начальное значение параметра цикла;

 

 

 

В - конечное зн чение параметра цикла;

 

 

 

при этом A<B, шаг изменение параметра цикла равен +1.

 

FOR i:= A downto B do оператор;

 

 

 

 

 

 

где: i - параметр цикла;

 

 

 

 

 

 

 

 

 

 

А - начальн е значение параметра цикла;

 

 

 

 

 

В - конечное значение параметра цикла;

 

 

 

при э ом A>B, шаг изменение параметра цикла РАВЕН -1.

 

 

е

к

 

 

 

должны иметь целочисленный тип. При

 

В обоихтслучаях величины i, A, B

 

л

 

 

 

 

 

 

 

 

 

 

этом в кач стве A и B могут выступать арифметические выражения.

Э

 

 

 

 

 

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программирование прикладных задач циклической структуры

Пример 1.

1

1

1

 

 

 

1

 

Пример 2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычислить: 1+

2

+ 3

+ 4 +

... +

 

.

Вычислить: 100-99+98-97+…+4.

20

Данную задачу можно представить

Для

удобства

 

решения можно данную

1

1

 

1

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

Г

 

 

 

 

 

 

задачу представить в виде суммы: НИ

в виде:

 

+

 

+

 

 

+

 

+ ... +

 

 

.

 

1

2

3

 

4

20

 

В качестве

 

 

параметра

цикла

(+1)*100+(-1)*99+(+1)*98+(-1)*97+…+(+1)*4.

выберем числитель дроби.

 

 

Program drob;

 

 

А

 

Program drob;

 

 

 

 

 

 

 

 

 

 

var i, s: integer;

 

 

var i: integer; s: real;

 

 

 

 

 

 

begin

 

 

 

 

 

 

 

 

 

 

 

 

s:=0;

 

 

 

 

е

 

 

begin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z=1; {знак перед числом}

 

 

s:=0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

т

 

 

 

for i:=1 to 20 do s:=s+1/i;

 

 

 

 

 

for i:=100 downto 4 doка

 

 

 

 

 

 

 

 

begin s:=s+z*i; z=-z end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

write(s:7:4)

 

 

 

 

 

 

 

 

 

 

write(s:7:4)

о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end.

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Циклы c предусловием WHILE.

 

б

л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данный оператор цикла имеет вид: While условие do оператор;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

Вычисление оператора цикла с предусловием происходит следующим

образом:

если

значение

 

условия есть

 

стина, то

выполняется переход к

оператору тела цикла, иначе ра ота оператора прекращается. Оператор тела

ронная

, пока значение условия не станет ложь.

цикла будет выполнятся до тех порб

Если первоначальное значение условия есть ложь, то оператор тела цикла не выполнится ни разу.

Циклы c постусловием REPEAT. Данный оператор цикла имеет вид:

Repeat операт р1; оператор2; … оператор n until условие;

Вычисление

оператора цикла

с постусловием происходит следующим

к

 

 

образом: выполняются операторы тела цикла, затем проверяется условие. Если

результат условият

есть ложь, то

осуществляется переход к оператору тела

лнится хотя бы один раз.

ЭВ данных операторах параметр цикла может иметь как целочисленный, так и вещественный тип и изменяться с любым шагом.24цикла, иначе работа оператора цикла завершается. Оператор тела циклавыпо е

Программирование прикладных задач циклической структуры

Пример 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 4.

 

 

 

 

 

 

 

 

 

 

 

Дано действительное число а.

 

 

 

 

 

 

 

 

 

 

Среди

нечетных

 

трехзначных чисел

Вычислить:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выбрать те, которые читаются

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

одинаково как слева

направо, так и

a×(a+ 3 1,1)×(а+ 3 1,2 )× ... ×(a+

 

 

 

 

 

 

 

 

 

3 15,2 ).

 

наоборот.

 

 

 

 

 

 

 

А

Г

НИ

Program L;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Program Odinakovo;

 

 

 

var P, a, i: real;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

var: e, p, d, s, b, j: integer;

 

 

 

begin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

begin

 

 

 

 

 

 

ка

 

 

 

 

read(a);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j:=101;

 

 

 

 

 

 

 

 

 

 

P:=a; i:=1.1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

repeat

 

 

 

 

 

 

 

 

 

 

while i<= 15.2 do

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e:= j mod 10;

 

 

 

 

 

 

begin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p:=j div 10;

е

 

 

 

 

 

 

 

 

p:=p*(a+exp(1/3*ln(i)));

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d:= p mod 10;

 

 

 

 

 

 

 

 

i:=i+0.1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

т

 

 

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s :=p div 10;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b:=e*100+b*10+s;

 

 

 

 

 

write(P:7:3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if b=j then writeln (i)

 

 

 

 

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

until j>999

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end.

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задания к лабораторной работе:

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Составьте программу решения следующих задач:

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для данного числа х вычислить: (х+0,1)(х+0,5)(х+0,9)…(х+24,1).

 

 

 

2.

Дано натуральное число А. Вычислитьб

: С=1*2+2*3+3*4+...+А*(А+1).

 

3.

Для данного натур льного числа n вычислить:

ln1

-

ln 2

+

ln 3

-.

ln 4

+ ...,

 

 

 

9

27

 

 

где n - количество слагаемых.

 

 

 

 

 

 

 

 

 

1

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

Вычислить: sin x + cos sin x + sin cos sin x + ... + sin cos.....sin x . Число х -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1442443

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19 штук

 

 

 

 

 

 

 

дано.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

Автоморфными называются такие числа, цифры которого совпадают с

 

 

последними цифрами его квадрата. Например, 62=36, 252=625. Среди

 

 

чисел от 10 до 32000 найдите все автоморфные числа.

 

 

 

 

 

 

 

 

 

 

 

 

ронная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

Определитьт

числа "А", расположенные в интервале от 10 до 1000,

 

 

имеющие не менее 15 делителей от 2 до А/2. Так, число 30 имеет 6

 

 

 

 

 

к

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

д лит лей: 2, 3, 5, 6, 10, 15; число 36- 7 делителей: 2, 3, 4, 6, 9, 12, 18.

 

7.

е

 

 

 

данного

натурального

 

 

 

числа

 

 

 

n

 

вычислить:

 

Д я

 

 

 

 

 

 

 

 

Э

л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 + 6 +

9 +...+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3(n −1) +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Э

Программирование прикладных задач циклической структуры

 

Контрольные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

Какие операторы цикла языка Pascal Вы знаете?

 

 

 

 

 

 

 

 

 

 

 

 

2.

Какие форматы оператора For Вам известны?

 

 

 

 

 

 

 

 

 

 

 

 

3.

Каков шаг изменения параметра оператора For?

 

 

 

 

 

 

 

 

Г

 

 

4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В каком операторе цикла тело цикла может не выполниться ни разу?

 

5.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А

 

 

 

 

В каком операторе цикла тело цикла выполниться хотя бы один раз?

 

Задания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Составьте

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

Для

 

 

 

 

 

 

 

 

 

 

 

 

т

 

 

 

 

 

 

 

 

 

 

 

2.

Для

 

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

вычислить :

3.

Для

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

n-

 

 

 

 

 

 

 

л

 

 

 

 

2

 

2

 

4

 

4

 

6

 

6

 

 

количество сомножителей.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дано натуральное число n. Найти ко ичество цифр в числе n.

 

 

 

5.

Дано натуральное число

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n (n<9999). Является ли это число палиндромом

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(перевертышем) с учетом четырех цифр, как, например, числа 2222, 6116

 

и т.д.?

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

Среди чисел от 10 до

10000, определить те, которые кратны

 

 

 

одновременно 3 и 5, но не кратны при этом 2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.

 

ронная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определить число, расположенное в интервале от 10 до 1000, имеющее

 

наибольшее количество делителей. Вывести эти делители на печать.

 

 

n

(1)

i

x

i

 

x

 

x

2

 

x

3

 

 

 

 

 

 

 

 

 

 

 

 

 

8.

Вычислить сумму S = å

 

 

= 1

+

 

 

+ ...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

3!

 

 

 

 

 

 

 

 

 

 

 

 

i=0

 

i!

 

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.При заданных вещественном х, целом N вычислить сумму N слагаемых заданного вида:

а)

sin(x)

= 1

x2

+

x4

x6

+ ...;

x

 

 

 

 

3!

5!

7!

 

 

 

2

 

 

x2

x4

x6

 

б) e−x т=1

 

+

 

 

+...;

 

1!

2!

3!

 

е

 

 

 

 

 

 

 

 

 

л

к1

 

 

 

 

 

 

 

 

 

в)

=1

− x + x2 − x3 + x4 ....

 

 

1+ x

 

 

 

 

 

 

 

 

26

27

Программирование задач по обработке одномерных массивов

Лабораторная работа Программирование задач по обработке одномерных массивов

Цель работы.

 

 

 

 

 

 

 

 

А

Г

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приобретение навыков обработки одномерных массивов и решенияНИ

реальных задач с использованием массивов.

 

 

 

 

 

 

 

 

 

Теоретическая часть.

 

 

 

 

 

 

ка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Массив - это упорядоченная последовательность величин, имеющих один

и тот же

тип и объединённых одним именем.

Число

 

элементов

массива

 

 

 

 

 

 

 

е

 

 

 

 

меняется.

задаётся при описании и в процессе выполнения программы не

 

Индексы у элементов массива должны быть целого

т

 

 

 

 

 

 

ипа.

 

 

 

 

 

Если

 

 

 

 

о

индекс,

массив называется

в элемент массива имеет только дин

 

 

 

 

и

 

 

 

 

 

 

 

 

одномерным, если два индекса - двухмерным.

 

 

 

 

 

 

 

 

 

 

 

л

 

 

 

 

 

 

 

 

 

Описание одномерных массивов имеет вид:

 

 

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

<имя> : array[n .. m] of <тип>;

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

и описывается в разделе описания переменных.

 

 

 

 

 

 

 

 

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

 

Пример 1.

 

 

 

Пример 2.

 

Дан целочислен ый массив С(15).

Даны действительные числа а1, а2 . . . а50.

 

Найти сумму: С1+С2+С3+... +С15.

Найти максимальное из них.

 

 

Program massiv ;

Program massiv1;

 

 

var

 

 

 

var a: array[1..50] of real;

 

 

c: array [1..15] of integer;

max: real; i: integer;

 

 

 

 

 

 

ронная

begin

 

 

s, i: integer;

 

 

begin

т

 

for i:=1 to 50 do read (a[i]);

 

 

 

for i:=1к

to 15 do read(c [i] );

max:=a[1];

 

 

 

s:=0;

 

 

 

for i:=2 to 50 do if a[i]>max then max:=a[i];

 

 

л

е

 

 

 

write(max)

 

 

for i:=1 to 15 do s:=s+c[i];

 

 

write(s)

 

 

end.

 

 

 

 

 

 

 

 

end.

 

 

 

 

 

 

Э

 

 

 

 

 

 

 

 

 

 

 

 

 

Программирование задач по обработке одномерных массивов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 3.

 

Пример 4.

 

 

 

 

 

 

 

НИ

 

 

 

 

 

 

 

 

 

Даны массивы A(10), B(10), C(10).

Дано натуральное число n,

 

 

 

Получить массив D(10), где

действительные числа а1... аn. Получить

D [i]=A [i]+B[i]+C[i], i=1, ..., 10.

числа b1,..., bn , которые связаны с a1,..., аn

 

 

 

 

 

следующим образом:

 

 

 

Program summa;

 

b1= a1, bn= an

, bi =(ai+1- ai )/3 , i=2.., n-1.

type p = array [1..10] of real;

Program SG;

 

 

 

 

А

Г

 

var d, a, b, c: p;

 

 

 

 

 

 

 

i: integer;

 

Var

 

 

 

 

 

 

 

 

 

begin

 

 

 

a: array[1..10] of real; {n р вное 10}

for i:=1 to 10 do

 

b: array[1..10] of real;

 

 

 

read(a[i], b[i], c[i]);

i: integer;

 

 

т

е

ка

 

 

 

 

 

 

 

 

 

for i:= 1 to 10 do

begin

 

 

 

 

 

 

 

 

d [i]:=a[i]+b[i]+c[i] ;

writeln ('введи е массив чисел ');

 

for i:= 1 to 10 do write(d[i])

 

 

 

о

 

 

 

 

 

 

For i:= 1 to 10 do read (a[i]);

 

 

 

end.

 

 

 

writeln (' b[1]= ',a[1]);

 

 

 

 

 

 

 

 

for i:= 2 to 9 do begin

 

 

 

 

 

 

 

 

 

л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b[i]:= (a[i+1] - a[i])/3;

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

writeln ('B[',и

 

i:2,’]=' , b[i]:5:2);

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

write (' b[10]=' , a[10]);

 

 

 

 

 

 

 

 

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

Задания к лабораторной работеи:

 

 

 

 

 

 

 

 

 

 

 

Составьте программу решения следующих задач:

 

 

 

 

 

 

1.

Подсчитать количество отрицательных элементов в одномерном массиве

 

 

А(45).

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Сформировать м ссив Y из положительных элементов заданного массива

 

 

Х размером 10.

 

 

 

 

 

 

 

 

 

 

 

 

3.

Даны действитель ые числа а1,а2,..., а123. Известно, что а1>0 и что среди а2,

 

 

а3,..., а123 есть хотя бы отрицательное число. Пусть а1,....., аn - члены

 

 

данной п след вательности, предшествующие первому отрицательному

 

 

члену (n

заранее неизвестно). Получить: а1+а2+.....+аn.

 

 

 

 

4.

Найти

количество положительных

и

 

 

количество отрицательных

 

 

 

к

 

 

 

 

 

 

 

 

 

 

 

 

 

 

элемен овроннаявещественного массива А(100).

 

 

 

 

 

 

 

 

 

5.

е

 

 

 

 

заданного массива размера 8.

 

Найтитсреднее значение элементов

 

л

Пр образовать исходный массив, вычитая из каждого элемента среднее

Э

знач ние.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Дан целочисленный массив А(99). Проверьте, является ли он

перевертышем , т.е. верно ли , что А[1]=А[99], А[2]=А[98], А[3]=А[97], ...

28

Программирование задач по обработке одномерных массивов

 

Контрольные вопросы:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

НИ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

Что такое массив?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

Что называют размерностью массива?

 

 

 

 

 

 

 

 

 

 

 

 

 

Г

 

 

 

3.

Что такое одномерный массив? Пример.

 

 

 

 

 

 

 

 

 

 

 

А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

Что такое индекс?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

Как заполняют массивы? Пример.

 

 

 

 

 

 

 

каодномерном массиве

 

Задания для самостоятельного выполнения.

 

 

е

 

Составьте программу решения следующих задач:

 

 

 

 

 

 

 

 

 

 

 

 

 

т

 

 

 

1. Подсчитать количество отрицательных элементов в

 

 

А(45).

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Из массива А(10) выбрать отрицательные числа и записать их подряд в

 

 

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

массив В(N) . Значения массивов вывести на экран.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

Рассматривается последовательность a1, ... , a1000 . Требуется определить,

 

 

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

1,2,4,8,16, ... имеют

 

 

значение, меньшее, чем 0.25. При этом считать, что:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

2

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ak = sin (3k + 5) - cos (k

 

- 15) , k = 1,2,...,1000;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1 ,...,a1000 - заданные действ тельныеб

числа;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1 = 0.01 ; ak = sin (k + ak-1) , k =2 , ... , 1000.

 

 

 

a3

+ 4

 

 

 

 

 

 

 

 

 

 

 

 

 

ронная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

Дан вещественный массив A(100). Вычислить:

 

 

 

 

1

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1

+

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a2

+

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a3 +

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

......

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a100 +

101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

102

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1

 

 

 

 

 

 

 

 

 

5.

Дан вещественный массив A(100). Вычислить:

 

 

a1

+ 2

.

 

 

 

 

 

 

 

т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

к

 

 

 

 

 

 

 

 

 

 

a2

+ 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

е

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

л

 

 

 

 

 

 

 

 

 

..............

 

 

 

 

 

 

 

 

Э

 

 

 

 

 

 

 

 

 

 

 

 

a100 + 101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

102

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

29

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программирование задач по обработке двумерных массивов

Лабораторная работа Программирование задач по обработке двумерных массивов

Цель работы.

навыков обработки двумерных массивов и решенияНИ

Приобретение

реальных задач с использованием массивов.

А

Г

Теоретическая часть.

 

 

 

Массивы с двумя индексами называют в математике м триц ми.

 

Описание двумерных массивов осуществляется следующим образом:

 

 

var

 

 

 

 

 

 

 

 

 

 

е

ка

 

 

<имя> : array[i1..i2, j1..j2] of

<тип>;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Величины i1, i2, j1, j2 являются целочисленными константами.

 

 

 

 

 

 

 

 

 

 

 

 

о

т

 

 

Пример 1.

 

 

 

 

 

Пр мер 2.

 

 

 

Определить количество

 

 

 

Дан вещественный массив А(100,25).

положительных элементов каждого

 

 

 

 

и

 

 

 

 

 

 

По учить сумму элементов, кратных 5.

столбца массива А(4,4).

 

и

 

б

л

 

 

 

 

 

Program matr;

 

б

 

 

 

 

 

 

 

 

 

Program ty ;

 

 

 

var a: array [1..4, 1..4] of real;

 

var a: array[1..100, 1..25] of real;

k, i, j: integer;

 

 

 

i, j: integer ;

 

 

 

begin

 

 

 

 

 

 

S: real;

 

 

 

 

for i:=1 to 4 do

 

 

 

 

begin

 

 

 

 

 

for j:=1 to 4 do read (a[i,j]);

 

 

 

for i:=1 to 100 do

 

for j:=1 to 4 do

 

 

 

 

for j:=1 to 25 do read(a[i]);

 

 

begin

 

 

 

 

S:=0;

 

 

 

 

 

 

 

 

 

k:= 0;

 

 

 

for i:=1 to 100 do

 

 

 

 

 

for i:=1 to 4 do

 

 

 

for j:=1 to 25 do

 

 

 

 

 

If a [i,j]>0 then k:=k+1;

 

 

 

if i mod 5 = 0 then S:= S+1;

 

 

 

 

write(k)

 

 

 

write(S);

 

 

 

 

end.

end

т

ронная

 

 

 

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

л

е

к

 

 

 

 

 

 

 

 

 

 

 

 

Э

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]