![]() |
|
|
Регистрация | << Правила форума >> | 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; Как-то так... |