25. Алгоритмы обработки массивов – продолжение
Дан массив, содержащий 2014 положительных целых чисел. Напишите на одном из языков программирования программу, которая находит в этом массиве количество элементов, значение которых более чем в два раза превосходит значение предшествующего элемента. Например, для массива из 6 элементов, содержащего числа 2, 5, 10, 15, 40, 100, программа должна выдать ответ 3 (условию соответствуют элементы со значениями 5, 40 и 100). Программа должна вывести общее количество подходящих элементов, значения элементов выводить не нужно. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.
Delphi/Pascal
|
12345678
|
const N = 2014; var a: array [1..N] of integer; i, j, k: integer; beginfor i:=1 to N do readln(a[i]); …end. |
|
C
|
123456789
|
#include<stdio.h> int main(void) { const int N=2014; int a[N]; int i, k, j; for (i=0; i<N; i++) scanf(″%d″, &a[i]); …} |
|
Решение:
Паскаль
Delphi/Pascal
|
12345
|
k:=0;for i:=2 to N do if a[i] > 2*a[i-1] then k:=k+1;writeln(k); |
C++
C++
|
12345
|
k=0;for (i=1; i<N; i++) if (a[i] > 2*a[i-1]) k=k+1;cout<<k; |
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых десятичная запись хотя бы одного числа оканчивается на 5.
Delphi/Pascal
|
123456789
|
const N = 40;var a: array [1..N] of integer; i, j, k: integer;begin for i := 1 to N do readln(a[i]); ...end. |
|
C
|
12345678910
|
#include <stdio.h>#define N 40int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0;} |
|
Решение:
Паскаль
Delphi/Pascal
|
12345
|
k := 0;for i := 1 to N-1 do if (a[i] mod 10 = 5) or (a[i+1] mod 10 = 5) then k := k + 1;writeln(k); |
C++
C++
|
12345
|
k = 0;for (i=0; i<N-1; i++) if (a[i] % 10 == 5 || a[i+1] % 10 == 5) k = k + 1;cout<<k; |
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести наибольший из элементов массива, шестнадцатеричная запись которого оканчивается на букву F. Если таких чисел нет, нужно вывести ответ 0.
Delphi/Pascal
|
123456789
|
const N = 40;var a: array [1..N] of integer; i, j, k: integer;begin for i := 1 to N do readln(a[i]); ...end. |
|
C
|
12345678910
|
#include <stdio.h>#define N 40int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0;} |
|
C
|
12345678910
|
#include <stdio.h>#define N 40int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0;} |
|
Python
|
12345678910
|
алгнач цел N = 40 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ...кон |
|
Решение:
Паскаль
Delphi/Pascal
|
12345
|
k := 0;for i := 1 to N do if (a[i] mod 16 = 15) and (a[i] > k) then k := a[i];writeln(k); |
C++
C++
|
12345
|
k = 0;for (i = 0; i<N; i++) if (a[i] % 16 == 15 && a[i] > k) k = a[i];cout<<k; |
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести наибольший из элементов массива, восьмеричная запись которого содержит ровно три цифры. Если таких чисел нет, нужно вывести ответ 0.
Delphi/Pascal
|
123456789
|
const N = 40;var a: array [1..N] of integer; i, j, k: integer;begin for i := 1 to N do readln(a[i]); ...end. |
|
C
|
12345678910
|
алгнач цел N = 40 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ...кон |
|
C
|
12345678910
|
#include <stdio.h>#define N 40int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0;} |
|
Python
|
1234567
|
#допускается также использовать #две целочисленные переменные #j и k а = [] n = 40for і in range(n): a.append(int(input())) |
|
Решение:
Паскаль
Delphi/Pascal
|
12345
|
k := 0;for i := 1 to N do if (64 <= a[i]) and (a[i] < 512) and (a[i] > k) then k := a[i];writeln(k); |
C++
C++
|
12345
|
k = 0;for (i = 0; i<N; i++) if (64 <= a[i] && a[i] < 512 &&a[i] > k) k = a[i];cout<<k; |
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести наименьший из элементов массива, шестнадцатеричная запись которого содержит не менее трёх цифр и оканчивается на букву C. Если таких чисел нет, нужно вывести ответ 0.
Delphi/Pascal
|
123456789
|
const N = 40;var a: array [1..N] of integer; i, j, k: integer;begin for i := 1 to N do readln(a[i]); ...end. |
|
C
|
12345678910
|
алгнач цел N = 40 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ...кон |
|
C
|
12345678910
|
#include <stdio.h>#define N 40int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0;} |
|
Python
|
1234567
|
#допускается также использовать #две целочисленные переменные #j и k а = [] n = 40for і in range(n): a.append(int(input())) |
|
Решение:
Паскаль
Delphi/Pascal
|
12345678
|
k := 10001;for i := 1 to N do if (256 <= a[i]) and (a[i] mod 16 = 12) and (a[i] < k) then k := a[i];if k > 10000 then writeln(0)else writeln(k); |
C++
C++
|
12345678
|
k = 10001;for (i = 0; i<N; i++) if (256 <= a[i] && a[i] % 16 = 12 && a[i] < k) k = a[i];if (k > 10000) cout<<0;else cout<<k; |
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива, восьмеричная запись которого содержит ровно две цифры, причём первая (старшая) цифра меньше второй (младшей).
Delphi/Pascal
|
123456789
|
const N = 40;var a: array [1..N] of integer; i, j, k: integer;begin for i := 1 to N do readln(a[i]); ...end. |
|
C
|
12345678910
|
алгнач цел N = 40 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ...кон |
|
C
|
12345678910
|
#include <stdio.h>#define N 40int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0;} |
|
Python
|
1234567
|
#допускается также использовать #две целочисленные переменные #j и k а = [] n = 40for і in range(n): a.append(int(input())) |
|
Решение:
Паскаль
Delphi/Pascal
|
123456
|
k := 0;for i := 1 to N do if (8 <= a[i]) and (a[i] <= 63) and (a[i] div 8 < a[i] mod 8) then k := k + 1;writeln(k); |
C++
C++
|
12345
|
k = 0;for (i = 0; i<N; i++) if (8 <= a[i] && a[i] <= 63 && (a[i]/8 < a[i]%8)) k = k + 1;cout<<k; |