![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Я учусь в 10 классе.Нам по информатике задали написать программы к задачам на тему "массивы" в делфи,а я вобще в этой теме ноль,помогите,пожалуйста! Задач 10,но помогите чем сможете,также если вам легче,данные задачи можно написать в паскале:
1)Пассажирский поезд может содержать в своём составе вагоны 4 типов: общие(100 мест),плацкартные(56 мест),купейные (36 мест) и мягкие(20 мест).Требуется наладить учёт свободных мест в вагонах. 2)Обнуление.В заданном двумерном массиве А[1:m,1:n] заменить нулями элементы,стоящие в строках или столбцах,где имеются нули.Условие.Можно завести вспомогательный одномерный массив,но нельзя заводить вспомогательный двумерный массив. 3)Заданы две матрицы А и В размером NхN.Сформировать из них прямоугольную матрицу Х размером Nх2N,включая в первые N столбцов матрицу А,а в следующие-матрицу В. 4)Дана последовательность из n вещественных чисел.Переменной t присвоить значение True,если в последовательности нет нулевых элементов и при этом положительные элементы чередуются с отрицательными. 5)Дана действительная квадратная матрица порядка N.Вычислить сумму тех элементов,расположенных на главной диагонали и выше неё,которые превосходят по велечине все элементы,расположенные ниже главной диагонали. 6)Дан одномерный массив H(n).Определить индексы всех равных элементов. 7)Вычислите среднее геометрическое элементов массива А(1:40),имеющих чётные индексы. 8)Выясните,является ли предложенный двумерный массив размером NхN магическим квадратом,т.е. массивом,суммы элементов которого по столбцам,по строкам и по обеим диагоналям равны. 9)В одномерном массиве хранятся результаты социологического опроса.Написать программу для подсчёта количества результатов,отклоняющихся от среднего уровня не более,чем на 7%. 10)В некотором театре каждый день проходит по три спектакля,билеты продают только на текущий день.В зале театра 24 ряда по 40 мест.Чтобы исключить повторную продажу билетов на одно и то же место,в кассе установлен компьютер.Каждое утро необходимо подготовить компьютер к продаже билетов на текущий день.Опишите систему кодирования информации о занятости мест. Спасибо вам заранее! |
|
#2
|
|||
|
|||
|
1000 рублей
|
|
#3
|
|||
|
|||
|
Цитата:
Я вот например решил человеку помочь.. Вот решение задачи №8 Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const matr_max = 50;
var matrica : array[1..matr_max, 1..matr_max] of integer;
matrica_count : integer;
q, r, c, t : integer;
bMagicSquare : Boolean;
begin
Write('Razmer matrix (N<=', matr_max,'): '); ReadLn(matrica_count);
if matrica_count > matr_max then matrica_count := matr_max;
{ забиваем матрицу значениями}
WriteLn('Matrix');
for r := 1 to matrica_count do
begin
for c := 1 to matrica_count do
begin
Read(matrica[r, c]);
//Write(matrica[r, c]:3, ' ');
end;
WriteLn;
end;
bMagicSquare := True;
{ считаем сумму элементов первой строки }
t := 0;
for c := 1 to matrica_count do
t := t + matrica[1, c];
{ работаем по строкам }
for r := 2 to matrica_count do
begin
q := 0;
for c := 1 to matrica_count do
q := q + matrica[r, c];
if q<>t then
begin
bMagicSquare := False;
break;
end;
end;
if bMagicSquare then
begin
{ работаем по столбцам }
for r := 1 to matrica_count do
begin
q := 0;
for c := 1 to matrica_count do
q := q + matrica[c, r];
if q<>t then
begin
bMagicSquare := False;
break;
end;
end;
if bMagicSquare then
begin
{проверяем диагонали}
{главная диагональ}
q := 0;
for c := 1 to matrica_count do
q := q + matrica[c, r];
if q=t then
begin
{вторая диагональ}
r:=1;
c:=matrica_count;
q:=0;
while r<=matrica_count do
begin
q:=q+matrica[r,c];
Inc(r);
Dec(c);
end;
if q<>t then
bMagicSquare := False;
end;
end;
end;
{ выводим результаты }
if bMagicSquare then
WriteLn('Matrix - Magic Square')
else
WriteLn('Matrix - is not Magic Square');
ReadLn;
ReadLn;
end.Последний раз редактировалось Dmitry_DM, 27.01.2013 в 22:19. |
|
#4
|
|||
|
|||
|
Цитата:
Затем, что за лень надо платить. Все задачаи элементарные. Достаточно понимать что такое массивы + циклы. Все остальное, по сути, решается элементарно. Например, задача 5. Сначала находим max элемент ниже главной диагонали. Далее по диагонали и выше нее с сумматор складываем все, что больше найденного значения. Код:
function Task_5(A : Array Of Array Of Integer) : Integer;
var
_Max : Integer;
I, J : Integer;
begin
_Max := A[Low(A),Low(Low(A))];
For I := Low(A) To High(A);
For J := I+1 To High(A[i]) Do
If A[I,J] > _Max Then _Max := A[I,J];
Result := 0;
For I := Low(A) To High(A) Do
For J := Low(A[i]) To I Do
If A[I,J] > _Max Then Result := Result + A[I,J];
end;Как-то так... |