РЕШЕНИЕ ЛИНЕЙНОЙ СИСТЕМЫ УРАВНЕНИЙ



 , .

 

 

ОПЕРАТОР ВЫБОРА CASE

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

case переключатель of

список выбора 1: оператор1;

...

список выбора N: операторN

else оператор0;

end;

 

Case1 Дано целое число в диапазоне 1–7. Вывести строку - название дня недели, соответствующее данному числу (1 - «понедельник», 2 - «вторник» и т. д.).

program case1;

var  n: byte; // byte - 0 ... 255

Begin

writeln ('Введите номер дня недели');

readln (N);

Case N of

1: writeln (' понедельник ');

Writeln ('воскресенье')

else writeln ('диапазон от 1 до 7!')

end ;

End .

Case4 Дан номер месяца - целое число в диапазоне 1–12 (1 - январь, 2 - февраль и т. д.). Определить количество дней в этом месяце для не високосного года.

Case18  Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256 - «двести пятьдесят шесть», 814 - «восемьсот четырнадцать».

Case19 В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года определить его название, если 1984 год - начало цикла: «год зеленой крысы».

Case20. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака, соответствующий этой дате: «Водолей» (20.1–18.2), «Рыбы» (19.2–20.3), «Овен» (21.3–19.4), «Телец» (20.4–20.5), «Близнецы» (21.5–21.6), «Рак» (22.6–22.7), «Лев» (23.7–22.8), «Дева» (23.8–22.9), «Весы» (23.9–22.10), «Скорпион» (23.10–22.11), «Стрелец» (23.11–21.12), «Козерог» (22.12–19.1).

 

ЦИКЛ С ПАРАМЕТРОМ. ОПЕРАТОР ЦИКЛА FOR .. TO ..

for i:=1 to 5 do

"for" – от                   i – переменная цикла (целое)                 i:=1 …

"to" – до                    1 – начальное значение                            i :=2 …

"do" – делать           5 – конечное значение                              i :=3 …

                                                                                                                  i :=4 …

                                                                                                                  i :=5 …

for i :=7 downto 2 do – в обратном порядке, вниз

 

For1  Даны целые числа N и K  (N > 0). Вывести N раз число K.

Вход: ; Выход:

For2 Даны два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.

Вход: ; Выход:

var i, a, b: integer;

Begin

   read (a,b);

for i:=a to b do write (i,'  ');

   writeln;

   writeln ('N=', b-a+1);

End .

For3  Даны два целых числа A и B (A< B). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.

Вход: ; Выход:

For4  Дано вещественное число - цена 1 кг конфет. Вывести стоимость 1, 2, . . . , 10 кг конфет.

Вход: 12.20; Выход: 12.2 24.4 36.6 48.8 61.0 73.2 85.4 97.6 109.8 122.0

For7  Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно.

Вход: ; Выход:

var a, b, i, s: integer;

Begin

   s:=0;

readln (a,b);

   for i:=a to b

  do s:=s+i;

   writeln ('s=', s);

End.

For9  Даны два целых числа A и B (A < B). Найти сумму квадратов всех целых чисел от A до B включительно.

Вход: ; Выход:

For10  Дано целое число N (>0). Найти сумму  (вещественное число).

Вход: ; Выход:

For11  Дано целое число N (>0). Найти сумму

  (целое число).

Вход: ; Выход:

For12  Дано целое число N (> 0). Найти произведение

(N сомножителей).

Вход: ; Выход:

var i, n: integer;

     pr: real;

Begin

 read (n); pr:=1;

 for i:=1 to n do

    pr:=pr*(1+i/10);

 writeln (pr);

End .

For13  Дано целое число N (> 0). Найти значение выражения 1.1 − 1.2 + 1.3 − … (N слагаемых, знаки чередуются). Условный оператор не использовать.

Вход: ; Выход:

For14  Дано целое число N (> 0). Найти квадрат данного числа, используя для его вычисления следующую формулу: . После добавления к сумме каждого слагаемого выводить текущее значение суммы (в результате будут выведены квадраты всех целых чисел от 1 до N).

Вход: ; Выход:

For15  Дано вещественное число A и целое число N (> 0). Найти A в степени N.

Вход: ; Выход:

For16 Дано вещественное число A и целое число N (> 0). Используя один цикл, вывести все целые степени числа A от 1 до N.

Вход: ; Выход:

For18  Дано вещественное число A и целое число N (> 0). Используя один цикл, найти значение выражения . Условный оператор не использовать.

Вход: ; Выход:

For19  Дано целое число N (> 0). Найти  (N–факториал).

Вход: ; Выход:

var i, n: integer;

   pr: longint;

Begin

read (n);

pr:=1;

for i:=1 to n do pr:=pr*i;

writeln (pr);

End.

For21  Дано целое число N (> 0). Используя один цикл, найти сумму

 Полученное число является приближенным значением константы .

Вход: ; Выход:

var i, n, p: integer;

          s: real;

Begin

readln (n);

s:=1; p:=1;

for i:=1 to n do

Begin

p:=p*i;

s:=s+1/p;

    end;

write ('сумма 1/N!= ',s:1:8);

End .

For23  Дано вещественное число X и целое число N (> 0). Найти значение выражения . Полученное число является приближенным значением функции .

Вход: ; Выход:

For24  Дано вещественное число X и целое число N (> 0). Найти значение выражения . Полученное число является приближенным значением функции .

Вход: ; Выход:

For29  Дано целое число N (> 1) и две вещественные точки на числовой оси: A, B ( ). Отрезок  разбит на N равных отрезков. Вывести H - длину каждого отрезка, а также набор точек  образующий разбиение отрезка .

Вход: ; Выход:

For33  Дано целое число N (> 1). Последовательность чисел Фибоначчи  (целого типа) определяется следующим образом:  . Вывести элементы .

Вход: ; Выход:

For36  Даны целые положительные числа N и K. Найти сумму . Чтобы избежать целочисленного переполнения, вычислять слагаемые этой суммы с помощью вещественной переменной и выводить результат как вещественное число.

Вход: ; Выход:

For37  Дано целое число N (>0). Найти сумму . Чтобы избежать целочисленного переполнения, вычислять слагаемые этой суммы с помощью вещественной переменной и выводить результат как вещественное число.

Вход: ; Выход:

For38  Дано целое число N (>0). Найти сумму . Чтобы избежать целочисленного переполнения, вычислять слагаемые этой суммы с помощью вещественной переменной и выводить результат как вещественное число.

Вход: ; Выход:

For40  Даны целые числа A и B ( ). Вывести все целые числа от A до B включительно; при этом число A должно выводиться 1 раз, число A+1 должно выводиться 2 раза и т. д.

Вход: ; Выход:

 

 

18. ЦИКЛ С УСЛОВИЕМ. ОПЕРАТОР ЦИКЛ "ПОКА", WHILE

while <условие> do <действие, пока выполняется условие>;

while – пока, do – делать

 

while i < 7 do i:= i + 1;

i :=0, i :=0+1=1

i :=1, i :=1+1=2

i :=6, i :=6+1=7

7<7 нет! Выход из цикла, действие переходит на следующую строку. i=7

 

While11  Дано целое число . Вывести наименьшее из целых чисел K, для которых сумма  будет больше или равна N, и саму эту сумму.

Вход: Выход:

Вход: Выход:

var k, sum, n: integer;

Begin

writeln ('введите предел суммы');

read (n);

while sum<n do

Begin

k:=k+1;

sum:=sum+k;

end;

writeln ('k=',k,' sum=',sum);

End .

While1  Даны положительные числа A и B . На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка.

Вход: ; Выход:

While2  Даны положительные числа A и B . На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.

Вход: ; Выход:

While3  Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления.

Вход: ; Выход: Остаток 3

While4  Дано целое число . Если оно является степенью числа 3, то вывести TRUE, если не является — вывести FALSE.

Вход: Выход:  FALSE

While5  Дано целое число , являющееся некоторой степенью числа 2: . Найти целое число K — показатель этой степени.

Вход: Выход:  9

While7  Дано целое число . Найти наименьшее целое положительное число K, квадрат которого превосходит N: . Функцию извлечения квадратного корня не использовать.

Вход: Выход:

var n, k, st: integer;

Begin

read (n);

k:=1; st:=1;

while st<n do

Begin

inc(k);

st:=sqr(k);

    end;

writeln (k);

End.

While8  Дано целое число . Найти наибольшее целое число K, квадрат которого не превосходит N: . Функцию извлечения квадратного корня не использовать.

Вход: Выход:

While12  Дано целое число . Вывести наибольшее из целых чисел K, для которых сумма  будет ≤ N, и саму эту сумму.

Вход: Выход:

Вход: Выход:

While13  Дано число . Вывести наименьшее из целых чисел K, для которых сумма  будет больше A, и саму эту сумму.

Вход: Выход:

While15  Начальный вклад в банке равен 1000 руб. Через каждый месяц размер вклада увеличивается на P процентов от имеющейся суммы (P — вещественное число, ). По данному P определить, через сколько месяцев размер вклада превысит 1100 руб., и вывести найденное количество месяцев K (целое число) и итоговый размер вклада S (вещественное число).

Вход: Выход:

While19  Дано целое число . Используя операции деления нацело и взятия остатка от деления, найти число, полученное при прочтении числа N справа налево.

Вход: Выход:

While20  Дано целое число . С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2». Если имеется, то вывести TRUE, если нет — вывести FALSE.

Вход: Выход:  TRUE

var n: longint;

   fl: boolean;

Begin

fl:=FALSE;

read (n);

while n>0 do

Begin

if (n mod 10)=2 then fl:=TRUE;

    n:=n div 10;

    end;

Write (fl);

End .

While21  Дано целое число . С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры. Если имеются, то вывести TRUE, если нет — вывести FALSE.

Вход: Выход:  FALSE

While22  Дано целое число . Если оно является простым, то есть не имеет положительных делителей, кроме 1 и самого себя, 'простое число', иначе вывести 'составное число'.

Вход: N=383 Выход: простое число

While23 Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида:  если ; .

Вход:  Выход:

var a,b: longint;

Begin

read (a,b);

write ('НОД(',a,';',b,')=');

while a<>b do

  if a>b then a:=a-b else b:=b-a;

write ( a );

End .

While27  Дано целое число , являющееся числом Фибоначчи: . Найти целое число K — порядковый номер числа Фибоначчи N.

Вход: Выход:

While30  Даны положительные числа . На прямоугольнике размера  размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике. Операции умножения и деления не использовать.

Вход:      Выход: Кол-во квадратов: 24

ПОСЛЕДОВАТЕЛЬНОСТИ

Во всех заданиях данной группы предполагается, что исходный набор содержит ненулевое число элементов (в частности, число N всегда больше нуля). В заданиях на обработку нескольких наборов чисел (Series29-Series40) количество наборов K также всегда является ненулевым.

Для решения заданий из данной группы следует использовать «однопроходные» алгоритмы, позволяющие получить требуемый результат после однократного просмотра набора исходных данных. Однопроходные алгоритмы обладают важным преимуществом: для них не требуется хранить в памяти одновременно весь набор данных, поэтому при программной реализации этих алгоритмов можно не использовать массивы.

Series1 Даны N вещественных чисел. Найти их сумму.

Вход:

Выход:

var N,i: integer;

a,s: real;

Begin

writeln ('введите N');

readln (n);

for i:=1 to n do

Begin

readln (a);

s:=s+a;

   end;

writeln (s);

End.

Series2 Даны N вещественных чисел. Найти их произведение.

Вход:

Выход:

Series3 Даны N вещественных чисел. Найти их среднее арифметическое.

Вход:

Выход:

Series5 Дано целое число N и набор из N положительных вещественных чисел. Вывести в том же порядке целые части всех чисел из данного набора (как вещественные числа с нулевой дробной частью), а также сумму всех целых частей.

Вход:

Выход:

var N,i: integer;

    a,s: real;

Begin

writeln ('введите N');

readln (n);

for i:=1 to n do

Begin

read (a);

a:=trunc(a);

s:=s+a;

write (a:4:2,' ');

   end;

writeln;

writeln ('Сумма целых частей:', s :6:2);

End.

Series13 Дан набор ненулевых целых чисел; признак его завершения - число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0.

Вход:

Выход:

Series15 Дано целое число К и набор ненулевых целых чисел; признак его завершения — число 0. Вывести номер первого числа в наборе, большего K. Если таких чисел нет, то вывести 0.

Вход:

Выход:

var k,a,i: integer;

Begin

writeln ('Введи K');

read(k);

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

Repeat

Begin

read(a);

inc(i);

End

until (a>k) or (a=0);

if a=0 then i:=0;

writeln ('Номер ',i);

End .

Series16 Дано целое число К и набор ненулевых целых чисел; признак его завершения — число 0. Вывести номер последнего числа в наборе, большего K. Если таких чисел нет, то вывести 0.

Вход:

Выход:

Series17 Дано вещественное число В, целое число N и набор из N вещественных чисел, упорядоченных по возрастанию. Вывести элементы набора вместе с числом В, сохраняя упорядоченность выводимых чисел.

Вход:

Выход:

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

Вход:

Выход:

Series21 Дано целое число N (> 1) и набор из N вещественных чисел. Проверить, образует ли данный набор возрастающую последовательность. Если образует, то вывести True, если нет — вывести False.

Вход:

Выход: False

Series22 Дано целое число N (> 1) и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном случае вывести номер первого числа, нарушающего закономерность.

Вход:

Выход: 2

Series23 Дано целое число N (> 2) и набор из N вещественных чисел. Набор называется пилообразным, если каждый его внутренний элемент либо больше, либо меньше обоих своих соседей (то есть является «зубцом»). Если данный набор является пилообразным, то вывести 0; в противном случае вывести номер первого элемента, не являющегося зубцом.

Вход:

Выход: 3

var n,k,a,b,c: integer;

Begin

writeln ('Введи N');

read(n);

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

read(a);

read(b);

read(c);

k:=2;

while (((b>a) and (b>c)) or ((b<a) and (b<c))) and (k<(n-1)) do

Begin

a:=b; b:=c;

inc(k);

read(c);

end;

if (((b>a) and (b>c)) or ((b<a) and (b<c))) then k:=0;

writeln ('K=',k);

End.

Series24 Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между последними двумя нулями (если последние нули идут подряд, то вывести 0).

Вход:

Выход:  11

Series25 Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между первым и последним нулем (если первый и последний нули идут подряд, то вывести 0).

Вход:

Выход:  12

Series38 Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее действие: если элементы набора возрастают, то вывести 1; если элементы набора убывают, то вывести -1; если элементы набора не возрастают и не убывают, то вывести 0.

Вход:

Набор1: 6 7 9 0

Набор2: 9 8 7 0

Набор3: 1 6 7 4 55 0

Выход: Набор1: 1 Набор2: -1 Набор3: 0

Series39 Дано целое число К, а также К наборов ненулевых целых чисел. Каждый набор содержит не менее трех элементов, признаком его завершения является число 0. Найти количество пилообразных наборов (определение пилообразного набора дано в задании Series23).

Вход:

Набор1: 6 7 9 0

Набор2: 9 8 7 0

Набор3: 1 7 6 10 5 0

Выход: 1

Series40 Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее трех элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее действие: если набор является пилообразным (см. задание Series23), то вывести количество его элементов; в противном случае вывести номер первого элемента, который не является зубцом.

Вход:

Набор1: 6 7 9 0

Набор2: 9 8 7 0

Набор3: 1 7 6 10 5 0

Выход: Набор1: № элемента 2 Набор2: № элемента 2 Набор3: Кол.эл. 5

 

МИНИМУМЫ И МАКСИМУМЫ

Для решения заданий из данной группы следует использовать «однопроходные» алгоритмы, позволяющие получить требуемый результат после однократного просмотра набора исходных данных. Однопроходные алгоритмы обладают важным преимуществом: для них не требуется хранить в памяти одновременно весь набор данных, поэтому при программной реализации этих алгоритмов можно не использовать массивы. Во всех заданиях данной группы предполагается, что исходный набор содержит ненулевое количество элементов (в частности, число N всегда больше нуля).

 

Minmax1 Дано целое число N и набор из N чисел. Найти минимальный и максимальный из элементов данного набора и вывести их в указанном порядке.

Вход: 1 7 6 10 5 8

Выход: Min:1 Max:10

var N,i: integer;

a,Min,Max: real;

Begin

read(N);

read (a);

Min:=a; Max:=a;

for i:=2 to N do

Begin

read(a);

if a>Max then Max:=a;

if a<Min then Min:=a;

end;

writeln ('Min:',Min,' Max:',Max);

End .

Minmax2 Дано целое число N и набор из N прямоугольников, заданных своими сторонами - парами чисел . Найти минимальную площадь прямоугольника из данного набора.

Вход: 1.5 8.3   7.0 6.6  6.7 10.8   5.4 8.8

Выход: 12.45

Minmax6 Дано целое число N и набор из N целых чисел. Найти номера первого минимального и последнего максимального элемента из данного набора и вывести их в указанном порядке.

Вход: 7 1 1 10 5 10

Выход:

Minmax8 Дано целое число N и набор из N целых чисел. Найти номера первого и последнего минимального элемента из данного набора и вывести их в указанном порядке.

Вход: 7 1 1 10 1 1

Выход:

Minmax10 Дано целое число N и набор из N целых чисел. Найти номер первого экстремального (то есть минимального или максимального) элемента из данного набора.

Вход: 3 4 7 1  7 1

Выход:

var N,i,Min1N,Max1N,Ext1N: integer;

a,Min,Max: real;

Begin

read (N);

read (a);

Min1N:=1; Max1N:=1; Max:=a; Min:=a;

for i:=2 to N do

Begin

read (a);

if a>Max then

Begin

Max:=a;

Max1N:=i;

end;

if a<Min then

Begin

Min:=a;

Min1N:=i;

    end;

end;

if Max1N<Min1N then Ext1N:=Max1N else Ext1N:=Min1N;

writeln ('N 1-ого extremal элемента:',Ext1N);

End .

Minmax12 Дано целое число N и набор из N чисел. Найти минимальное положительное число из данного набора. Если положительные числа в наборе отсутствуют, то вывести 0.

Вход: -3 4 -7 -1  7 3

Выход:

Minmax13 Дано целое число N и набор из N целых чисел. Найти номер первого максимального нечетного числа из данного набора. Если нечетные числа в наборе отсутствуют, то вывести 0.

Вход: -3 4 3 3  7 7

Выход:

Minmax14 Дано число  и набор из десяти чисел. Вывести минимальный из тех элементов набора, которые больше B, а также его номер. Если чисел, больших B, в наборе нет, то дважды вывести 0.

Вход: -3 4 8 3  7 7 6 5 4 6

Выход:

Minmax16 Дано целое число  и набор из  целых чисел. Найти количество элементов, расположенных перед первым минимальным элементом.

Вход: 8   4 8 3  1 7 6 1 4

Выход: 3

Minmax18 Дано целое число N и набор из N целых чисел. Найти количество элементов, содержащихся между первым и последним максимальным элементом. Если в наборе имеется единственный максимальный элемент, то вывести 0.

Вход: 8   4 9 3  9 7 6 1 4

Выход: 1

Minmax20 Дано целое число N и набор из N целых чисел. Найти общее количество экстремальных (то есть минимальных и максимальных) элементов из данного набора.

Вход: 8   7 1 3  5 7 6 1 1

Выход: 5

Minmax21 Дано целое число  и набор из N чисел - значений некоторой величины, полученных в N опытах. Найти среднее значение этой величины. При вычислении среднего значения не учитывать минимальное и максимальное из имеющихся в наборе значений.

Вход: 8   7 1 3  5 7 6 1 1

Выход: 4.67

Minmax22 Дано целое число  и набор из N чисел. Найти два наименьших элемента из данного набора и вывести эти элементы в порядке возрастания их значений.

Вход: 8   7 -1 3  -5 7 -6 1 1

Выход: -6 -5

Minmax24 Дано целое число  и набор из N чисел. Найти максимальную сумму двух соседних чисел из данного набора.

Вход: 8   7 1 3  5 7 2 6 1

Выход: 12

Minmax26 Дано целое число N и набор из N целых чисел. Найти максимальное количество четных чисел в наборе, идущих подряд. Если четные числа в наборе отсутствуют, то вывести 0.

Вход: 8   7 2 4  5 8 2 6 4

Выход: 4

Minmax27 Дано целое число N и набор из N целых чисел, содержащий только нули и единицы. Найти номер элемента, с которого начинается самая длинная последовательность одинаковых чисел, и количество элементов в этой последовательности. Если таких последовательностей несколько, то вывести номер первой из них.

Вход: 8   01100111

Выход: 6 3

Minmax28 Дано целое число N и набор из N целых чисел, содержащий только нули и единицы. Найти номер элемента, с которого начинается самая длинная последовательность единиц, и количество элементов в этой последовательности. Если таких последовательностей несколько, то вывести номер последней из них. Если единицы в исходном наборе отсутствуют, то дважды вывести 0.

Вход: 8   01110111

Выход: 6 3

var a,b,N,i,kmax,k,nach,nachM: integer;

Begin

read (N);

read(a);

if a=1 then begin k:=1; nach:=1; end;

for i:=2 to N do

Begin

b:=a;

read(a);

if (a=b) and (a=1) then

Begin

    if k=1 then nach:=i-1;

    inc(k);

End

Else

Begin

    if k>=kmax then

Begin

              kmax:=k;

              nachM:=nach;

              end;

    k:=1;

    end;

end;

if k>=kmax then begin

              kmax:=k;

              nachM:=nach;

            end;

if (kmax=1) and (nachM=0) then kmax:=0;

write(nachM,' ',kmax);

End .

Minmax29 Дано целое число N и набор из N целых чисел. Найти максимальное количество подряд идущих минимальных элементов из данного набора.

Вход: 8   01001000

Выход: 3

Minmax30 Дано целое число N и набор из N целых чисел. Найти минимальное количество подряд идущих максимальных элементов из данного набора.

Вход: 8   01110100

Выход: 1

ОДНОМЕРНЫЙ МАССИВ

МАССИВ, МАТРИЦА - упорядоченный набор данных

а) одномерный МАССИВ (ARRAY)

номера элементов 1 2 3 4 5 6
mas 180 175 168 174 165 177

mas - имя массива (часто имя массива А)

mas[1] - первый элемент массива, mas[1]=180

mas[6] - шестой элемент массива, mas[6]=177

массив задается так: mas: array [1..6] of integer;

Array1 Дано целое число N (>0). Сформировать и вывести целочисленный массив размера N, содержащий N первых положительных нечетных чисел: 1, 3, 5, . . . .

var i,n: integer;

   a: array [1..10] of integer;

Begin

read (n);

for i:=1 to n do

Begin

a[i]:=2*i-1;

write ('a[',i,']=',a[i],' ');

end;

End.

Array5 Дано целое число N (>2). Сформировать и вывести целочисленный массив размера N, содержащий N первых элементов последовательности чисел Фибоначчи  .

Вход:

Выход: 1 1 2 3 5 8 13 21 34

Array6 Даны целые числа N (> 2), A и B. Сформировать и вывести целочисленный массив размера N, первый элемент которого равен A, второй равен B, а каждый последующий элемент равен сумме всех предыдущих.

Вход:

Выход: 5 3 8 16 32 64

Array7 Дан массив размера N. Вывести его элементы в обратном порядке.

Вход: 8 5 3 77 8 2     Выход: 2 8 77 3 5 8

Array18 Дан массив A ненулевых целых чисел размера 10. Вывести значение первого из тех его элементов , которые удовлетворяют неравенству . Если таких элементов нет, то вывести 0.

Вход: 9 8 7 6 5 4 3 2 1 4

Выход: 3

Array19 Дан целочисленный массив A размера 10. Вывести порядковый номер последнего из тех его элементов , которые удовлетворяют двойному неравенству . Если таких элементов нет, то вывести 0.

Вход: 4 8 7 6 4 5 3 2 1 9

Выход: 6

var a: array[1..10] of integer;

i,k: integer;

Begin

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

for i:=2 to 9 do

if (a[i]>a[1]) and (a[i]<a[10]) then k:=i;

write ( k );

End .

Array21  Дан массив размера N и целые числа K и L ( ). Найти среднее арифметическое элементов массива с номерами от K до L включительно.

Вход:   1 2 3 4 5 6 7 8 9 10

Выход: 4.5

Array26 Дан целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность.

Вход: 1 2 3 4 6 7

Выход: 5

Array28 Дан массив A размера N. Найти минимальный элемент из его элементов с четными номерами:  .

Вход: 1 4 3 3 6 2

Выход: 2

Array32 Дан массив размера N. Найти номер его первого локального минимума (локальный минимум — это элемент, который меньше любого из своих соседей).

Вход: 4 5 3 6 2 4

Выход: 3

Array34 Дан массив размера N. Найти максимальный из его локальных минимумов (определение локального минимума дано в задании Array32).

Вход: 2 1 5 3 6 4 5 8

Выход: 4

Array37 Дан массив размера N. Найти количество участков, на которых его элементы возрастают.

Вход: 2 9 3 2 4 7 8 7 6 9

Выход: 3

Array39 Дан массив размера N. Найти количество его промежутков монотонности (то есть участков, на которых его элементы возрастают или убывают).

Вход: 2 9 3 2 4 7 8 7 6 9

Выход: 5

Array42 Дано число R и массив размера N. Найти два соседних элемента массива, сумма которых наиболее близка к числу R, и вывести эти элементы в порядке возрастания их индексов (определение наиболее близких чисел дано в задании Array40).

Вход: 4.9 5.2 4.7 7.7 6.9 8.0

Выход: 6.9 8

Array45 Дан массив размера N. Найти номера двух ближайших элементов из этого массива (то есть элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания.

Вход: 4.9 5.2 4.7 7.7 6.9 4.6

Выход: 3 6

Array47 Дан целочисленный массив размера N. Найти количество различных элементов в данном массиве.

Вход: 6 2 9 6 2 3 1 2 6 2

Выход: 5

Array48 Дан целочисленный массив размера N. Найти максимальное количество его одинаковых элементов.

Вход: 6 2 9 6 2 3 1 2 6 2

Выход: 4

program sort_puzir;

var n,i,j,pr:integer;

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

Begin

readln (n);

for i:=1 to n do read (mas[i]);

for i:=1 to n-1 do

for j:=1 to n-i do

   if mas[j]>mas[j+1]then

Begin

      pr:=mas[j];

      mas[j]:=mas[j+1];

      mas[j+1]:=pr;

End;

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

End .

 


Дата добавления: 2019-09-13; просмотров: 222; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!