IPB
ЛогинПароль:

> Внимание! Действует предмодерация

Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.

> решения: МАТРИЦЫ, МАССИВЫ. задачи, Фрагменты матриц. Методы сортировки
сообщение
Сообщение #1


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Примеры решения задач...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Список задач:
  • 1. Задан массив A из 100 чисел. Описать функцию для определения количества нечетных чисел среди его первых N элементов. В качестве параметров взять A и N. Если нечетных нет, то результат функции - число 7777777.
  • 2. Задан двумерный целочисленный массив G размером 10 на 10 элементов. Написать процедуру для определения числа тех строк массива, которые не содержат чисел из первой строки.
  • 3. Даны 2 матрицы A(M,N) и B(N,N). Подсчитать и вывести на экран общее количество отрицательных элементов, определить в какой из матриц среднее арифметическое значение прочих элементов имеет большую величину.
  • 4. Дан вещественный массив X(M) найти элемент массива, значение которого наиболее близко к какому нибудь целому числу.
  • 5. Составить программу, выводящую на экран номера элементов массива, кратных четырем.
  • 6. Составить алгоритм и программу для сортировки массива по следующему принципу следования элементов: максимальный элемент, минимальный элемент, 2й по величине, предпоследний, 3й по величине, 3й с конца и т.д.
  • 7. Задача: определить номер минимального элемента заданного одномерного массива.


1. Задан массив A из 100 чисел. Описать функцию для определения количества нечетных чисел среди его первых N элементов. В качестве параметров взять A и N. Если нечетных нет, то результат функции - число 7777777.

uses crt;
var
a:array[1..100] of integer;
i,n:integer;
function Nech(b:array of integer; m:integer):word;
var
k,j:integer;
begin
k:=0;
j:=0;
for j:=1 to m do
begin
if b[j] mod 2<>0 then k:=k+1;
end;
if k=0 then Nech:=7777 else Nech:=k;
end;
begin
ClrScr;
Randomize;
for i:=1 to 100 do
begin
a[i]:=random(9)+1;
write(a[i]:2);
end;
writeln;
write('Input n -> ');readln(n);
writeln('Output -> ',Nech(a,n));
readln;
end.


2. Задан двумерный целочисленный массив G размером 10 на 10 элементов. Написать процедуру для определения числа тех строк массива, которые не содержат чисел из первой строки.

uses crt;
const n=5;{ Размерность массива }
var
a:array[1..n,1..n] of integer;
q:array[1..n] of integer;
i,j,k,y,t:integer;
b:boolean;
begin
ClrScr;
Randomize;
{=== Заполняем массив ===}
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(99)+1;
write(a[i,j]:4);
end;
writeln;
end;
{--------- Begin --------}
k:=0;t:=1;
for i:=2 to n do
begin
b:=true;
for j:=1 to n do
begin
for y:=1 to n do
if a[i,j]=a[1,y] then
begin
b:=false;
break;
end;
end;
if b then
begin
k:=k+1;
q[t]:=i;
t:=t+1;
end;
end;
{---------- End ---------}
writeln('Таких строк: ',k);
write('Вот их номера: ');for i:=1 to t-1 do write(q[i],' ');
readln;
end.


3. Даны 2 матрицы A(M,N) и B(N,N). Подсчитать и вывести на экран общее количество отрицательных элементов, определить в какой из матриц среднее арифметическое значение прочих элементов имеет большую величину.

program too_matrix;
const
m=4;
n=5;
var
A:array[1..m,1..n] of integer;
B:array[1..n,1..n] of integer;
i,j,Sa,Sb,k: integer;
ka,kb : integer;
SredA,SredB: real;
begin
k:=0; ka:=0; kb:=0;
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(10)-5;
write(a[i,j]:3);
if a[i,j]<0 then begin k:=k+1; ka:=ka+1; Sa:=Sa+abs(a[i,j]); end;
end;
writeln;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to n do
begin
b[i,j]:=random(10)-5;
write(b[i,j]:3);
if b[i,j]<0 then begin k:=k+1; kb:=kb+1; Sb:=Sb+abs(b[i,j]); end;
end;
writeln;
end;
writeln('Elements < 0: ',k);
if ka<>0 then SredA:=Sa/ka;
if kb<>0 then SredB:=Sb/kb;
if SredA>SredB then writeln('В массиве A среднее арифметическое отрицательных элементов больше.')
else if SredB>SredA then writeln('В массиве B среднее арифметическое отрицательных элементов больше.')
else writeln('Одинаково!');
readln;
end.


4. Дан вещественный массив X(M) найти элемент массива, значение которого наиболее близко к какому нибудь целому числу.

program n_2;
const
m=10;
var
x : array[1..m] of real;
i,index : integer;
min,res : real;
begin
for i:=1 to m do
begin
write('x[',i,']=');
readln(x[i]);
end;
min:=1;
for i:=1 to m do
begin
if frac(x[i])>=0.5 then res:=1-frac(x[i])
else res:=1-(1-frac(x[i]));
if res<min then
begin
min:=res;
index:=i;
end;
end;
write('Output: ',x[index]:0:3);
readln;
end.


5. Составить программу, выводящую на экран номера элементов массива, кратных четырем.

program Mod4;
const n=8; { Размерность массива }
var
i : byte;
a : array [1..n] of integer;
begin
{ Заполнение массива }
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
for i:=1 to n do
if a[i] mod 4 = 0 then write(i,' ');
readln;
end.


6. Составить алгоритм и программу для сортировки массива по следующему принципу следования элементов: максимальный элемент, минимальный элемент, 2й по величине, предпоследний, 3й по величине, 3й с конца и т.д.

program Sort_Mas;
const n=8; { Размерность массива }
var
i,j : byte; { Счетчики в циклах }
imin: byte; { Индекс минимального элемента }
k,c : integer;
min : integer; { Минимальный элемент }
a : array [1..n] of integer;
begin
{ Заполнение массива }
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
{ Пузырьковая сортировка по возрастанию }
for i:=2 to n do
for j:=n downto i do
begin
if a[j-1]>a[j] then
begin
c:=a[j-1];a[j-1]:=a[j];a[j]:=c;
end;
end;
{ Ставим максимальные элементы на нужные позиции }
i:=1;k:=n;
while k>(n div 2)+1 do
begin
c:=a[i];
a[i]:=a[k];
a[k]:=c;
i:=i+2;
k:=k-1;
end;
{ Ставим минимальные элементы на нужные позиции }
i:=2;k:=0;
while k<(n div 2) do
begin
min:=a[i-1];imin:=i-1;
for j:=i-1 to n do
if a[j]<min then begin min:=a[j];imin:=j;end;
c:=a[i];
a[i]:=a[imin];
a[imin]:=c;
i:=i+2;
k:=k+1;
end;
{ Вывод отсортированного массива }
for i:=1 to n do write(a[i],' ');
readln;
end.


7. Задача: определить номер минимального элемента заданного одномерного массива.

uses crt;
const
Len = 10
var
mas: array[1 .. Len] of integer;
min, n, i:integer;
begin
{ заполняем массив }
randomize;
for i:=1 to Len do mas[i]:=random(100);

{ собственно сортировка }
min:=mas[1]; {начальный минимальный эл-т}
n = 1
for i := 2 to Len do begin {т.к. 1 элемент изначально взят за минимальный}
if min > mas[i] then begin
min := mas[i];
n := i;
end;
end;

{ В n содержится номер минимального элемента }
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 1:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name