Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.01.2013, 13:18
Julia16 Julia16 вне форума
Прохожий
 
Регистрация: 27.01.2013
Сообщения: 1
Репутация: 10
По умолчанию задачи delphi 10 класс

Я учусь в 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  
Старый 27.01.2013, 15:10
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

1000 рублей
Ответить с цитированием
  #3  
Старый 27.01.2013, 22:11
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от ART
1000 рублей
Ну зачем же так?
Я вот например решил человеку помочь..
Вот решение задачи №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  
Старый 27.01.2013, 23:13
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Dmitry_DM
Ну зачем же так?
Я вот например решил человеку помочь..
Вот решение задачи №8

Затем, что за лень надо платить.
Все задачаи элементарные. Достаточно понимать что такое массивы + циклы. Все остальное, по сути, решается элементарно. Например, задача 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;

Как-то так...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:02.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025