1 Случайные числа на языке Паскаль Тип величины Диапазон значений Паскаль Веществен ный [ 0, 1 ]x : = random [ 0, a]x : = random * a [ a, b ]x : = random.

Презентация:



Advertisements
Похожие презентации
1 Обработка массивов. 2 Реверс массива Задача: переставить элементы массива в обратном порядке. Алгоритм: поменять местами A[1] и A[N], A[2] и A[N-1],
Advertisements

1 Программирование на языке Паскаль Обработка массивов.
1 Программирование на языке Паскаль Тема 2. Максимальный элемент массива.
К. Поляков, Программирование на языке Паскаль Часть III Тема. Массивы.
1 Программирование на языке Паскаль Максимальный элемент массива.
Program maxsimum; const n=10; var a:array [1..n] of integer; max,i:integer;begin ВВОД ЭЛЕМЕНТОВ МАССИВА; max:=a[1]; for i:=2 to n do if a[i]> max then.
Например: семейство бабочек; Понятие одномерного массива поле цветов;
К. Поляков, Программирование на языке Паскаль Часть II Тема: Поиск максимального элемента массива.
Тема: « Вставка- удаление элементов массива » :18:06.
Власова О.А. СОШ 5, Елабуга. Например: семейство бабочек ; Понятие одномерного массива поле цветов;
3. Дана прямоугольная матрица, элементами которой являются целые числа. Поменять местами ее строки следующим образом: первую строку с последней, вторую.
PROGRAM example1; const m=100; var a : ARRAY [1.. m] of INTEGER; i,k,n,q : INTEGER; BEGIN readln (n); randomize; WRITELN('Полученный массив:' ); FOR i.
Работа с одномерными массивами Урок информатики 9 кл.
Программирование на языке Паскаль Часть II Матрицы.
Решение задач с использованием массивов
5.Дана матрица А и вектор Х соответствующих размерностей. Нечетные строки матрицы заменить элементами вектора Х. Результаты работы: n=4 m=
Двумерные массивы Решение задач из сборника «Задачи по программированию» под редакцией С. Окулова.
Массивы Массивы Ввод и вывод массива Максимальный элемент массива Обработка массивов Сортировка массивов Поиск в массивеМассивыВвод и вывод массиваМаксимальный.
1 Программирование на языке Паскаль Матрицы. 2 Задача: запомнить положение фигур на шахматной доске abcdefgh
К. Поляков, Программирование на алгоритмическом языке. Часть III 1.Обработка массивовОбработка массивов 2.Сортировка.
Транксрипт:

1 Случайные числа на языке Паскаль Тип величины Диапазон значений Паскаль Веществен ный [ 0, 1 ]x : = random [ 0, a]x : = random * a [ a, b ]x : = random * ( b – a ) + a Целый [ 0, a]x : = random * ( a + 1 ) + a [ a, b ]x : = random * ( b – a + 1) + a

2 Нахождение суммы всех элементов массива Program summa; const N = 5; var a: array [1..N] of integer; i, s: integer; begin writeln('Исходный массив:'); for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; writeln; {перейти на новую строку} writeln(Сумма элементов массива, s:4); end. Program summa; const N = 5; var a: array [1..N] of integer; i, s: integer; begin writeln('Исходный массив:'); for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; writeln; {перейти на новую строку} writeln(Сумма элементов массива, s:4); end. for i:=1 to n do s:=s+a[i]; for i:=1 to n do s:=s+a[i]; сумма всех элементов массива

3 Нахождение суммы элементов массива с заданными условиями Program summa; const N = 5; var a: array [1..N] of integer; i, s: integer; { заполнение массива} writeln; {перейти на новую строку} writeln(Сумма полж-ых эл-ов массива, s:4); end. Program summa; const N = 5; var a: array [1..N] of integer; i, s: integer; { заполнение массива} writeln; {перейти на новую строку} writeln(Сумма полж-ых эл-ов массива, s:4); end. for i:=1 to n do if a[i]>0 then s:=s+a[i]; for i:=1 to n do if a[i]>0 then s:=s+a[i]; сумма всех положительных элементов массива

4 Нахождение кол-ва элементов массива с заданными условиями Program summa; const N = 5; var a: array [1..N] of integer; i, k: integer; { заполнение массива} writeln; {перейти на новую строку} writeln(Кол-во полож-ых эл-ов массива, k); end. Program summa; const N = 5; var a: array [1..N] of integer; i, k: integer; { заполнение массива} writeln; {перейти на новую строку} writeln(Кол-во полож-ых эл-ов массива, k); end. for i:=1 to n do if a[i]>0 then k:=k+1; for i:=1 to n do if a[i]>0 then k:=k+1; количество положительных элементов массива

5 Вывод на экран элементов массива с заданными условиями Program summa; const N = 5; var a: array [1..N] of integer; i: integer; { заполнение массива} writeln; {перейти на новую строку} writeln(Результат:); end. Program summa; const N = 5; var a: array [1..N] of integer; i: integer; { заполнение массива} writeln; {перейти на новую строку} writeln(Результат:); end. for i:=1 to n do begin if a[i]>0 then a[i]:= 0; write(a[i]:4); end; for i:=1 to n do begin if a[i]>0 then a[i]:= 0; write(a[i]:4); end; замена положительных элементов массива нулями

6 Определение макс-ого эл-та и его номера (индекса) program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; { заполнение массива} writeln; {перейти на новую строку} writeln('Максимальный элемент a[', iMax, ']=', a[iMax]); end. program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; { заполнение массива} writeln; {перейти на новую строку} writeln('Максимальный элемент a[', iMax, ']=', a[iMax]); end. iMax := 1; for i:=2 to N if a[i] > a[iMax] then iMax := i; iMax := 1; for i:=2 to N if a[i] > a[iMax] then iMax := i; поиск максимального элемента и его индекса

7 Определение максимального по заданному условию program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; { заполнение массива} writeln; {перейти на новую строку} writeln('Макс. эл-т из отрицательных a[', iMax, ']=', a[iMax]); end. program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; { заполнение массива} writeln; {перейти на новую строку} writeln('Макс. эл-т из отрицательных a[', iMax, ']=', a[iMax]); end. iMax := 1; for i:=2 to N if (a[i] a[iMax]) then iMax := i; iMax := 1; for i:=2 to N if (a[i] a[iMax]) then iMax := i; поиск максимального из отрицательных элементов

8 Реверс массива Задача: переставить элементы массива в обратном порядке. Алгоритм: поменять местами A[1] и A[N], A[2] и A[N-1], … Псевдокод: 35…97 79…53 12…N-1N 12… N for i:=1 to N do { поменять местами A[i] и A[N+1-i] } for i:=1 to N do { поменять местами A[i] и A[N+1-i] } сумма индексов N+1 Что неверно? ? N div 2 do

9 Как переставить элементы? Задача: поменять местами содержимое двух чашек. Задача: поменять местами содержимое двух ячеек памяти ? ? x y c c := x; x := y; y := c; c := x; x := y; y := c; x := y; y := x; x := y; y := x; Можно ли обойтись без c ? ?

10 Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin { заполнить массив } { вывести исходный массив } { вывести полученный массив } end; program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin { заполнить массив } { вывести исходный массив } { вывести полученный массив } end; for i:=1 to N div 2 do begin c:=A[i]; A[i]:=A[N+1-i]; A[N+1-i]:=c; end; for i:=1 to N div 2 do begin c:=A[i]; A[i]:=A[N+1-i]; A[N+1-i]:=c; end;

11 Циклический сдвиг Задача: сдвинуть элементы массива влево на 1 ячейку, первый элемент становится на место последнего. Алгоритм: A[1]:=A[2]; A[2]:=A[3];… A[N-1]:=A[N]; Цикл: 3581… …N-1N 581…973 for i:=1 to N-1 do A[i]:=A[i+1]; for i:=1 to N-1 do A[i]:=A[i+1]; Что неверно? ? почему не N ?

12 Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin { заполнить массив } { вывести исходный массив } { вывести полученный массив } end; program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin { заполнить массив } { вывести исходный массив } { вывести полученный массив } end; c := A[1]; for i:=1 to N-1 do A[i]:=A[i+1]; A[N] := c; c := A[1]; for i:=1 to N-1 do A[i]:=A[i+1]; A[N] := c;

13 Удаление из массива k-ого элемента со сдвигом влево Program summa; const N = 5; var a: array [1..N] of integer; i, k: integer; { заполнение массива} end. Program summa; const N = 5; var a: array [1..N] of integer; i, k: integer; { заполнение массива} end. writeln(Введите номер эл-та для удаления:'); read(k); for i:=k to N-1 do a[i]:=a[i+1]; writeln(Результат:'); for i:=1 to N-1 do write(a[i]:4); writeln(Введите номер эл-та для удаления:'); read(k); for i:=k to N-1 do a[i]:=a[i+1]; writeln(Результат:'); for i:=1 to N-1 do write(a[i]:4);

14 Вставка в массив заданного числа на k-ое место со сдвигом вправо Program summa; const N = 5; var a: array [1..N+1] of integer; i, k, c: integer; { заполнение массива} end. Program summa; const N = 5; var a: array [1..N+1] of integer; i, k, c: integer; { заполнение массива} end. writeln(Введите номер эл-та для вставки:'); read(k); writeln(Введите значение для вставки:'); read(с); for i:= n+1 downto k+1 do a[i]:=A[i-1]; a[k]:=c; writeln(Результат:'); for i:=1 to N-1 do write(a[i]:4); writeln(Введите номер эл-та для вставки:'); read(k); writeln(Введите значение для вставки:'); read(с); for i:= n+1 downto k+1 do a[i]:=A[i-1]; a[k]:=c; writeln(Результат:'); for i:=1 to N-1 do write(a[i]:4);