Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2008, 21:09   #1
Mixo123
Новичок
Джуниор
 
Регистрация: 14.10.2008
Сообщений: 2
По умолчанию Школьные задачи по Delphi

Здравствуйте, уважаемые эксперты!
Помогите, пожалуйста, решить некоторые задачки!
Меня не было в школе очень долго и я не знаю, как их решить.
Мне не обязательно прямо кодом, мне хотя бы какими-то математическими алгоритмами.
Хотя если что - я использую Борланд Дельфи 7, и был бы особенно благодарен за предложенную полную реализацию. Помогите пожалуйста хоть частично, хоть одну задачку, хоть частично, хоть как-то...
Вот задачки:
Выручка театра.
В театре N рядов по M мест в каждом. Даны две матрицы - в первой записаны стоимости билетов. Вторая сообщает, какие билеты проданы, а какие нет (1 - соответствующий билет продан, 0 - не продан). Определите общую выручку от спектакля.
Вводится сначала число N, затем число M. Затем дана матрица стоимостей билетов (N строк по M чисел, каждое из чисел от 0 до 10 000).
Далее задана матрица проданных билетов (опять же N строк по M чисел). N и M не превышают 100.
Выведите общую выручку от продажи билетов.
Пример ввода:
3 4
1 100 100 1
1 5 5 1
2 2 3 2

1 0 1 1
0 1 1 0
0 0 1 0
Пример вывода: 115.
В этой задаче я себе даже не представляю, как всё это оформить... Хотелось бы конечно как-нибудь через пользовательский интерфейс, а не через ввод из файла. Но как??

Вторая задача:
Однажды царь решил вознаградить одного из своих мудрецов за хорошую работу. Он привёл его в прямоугольную комнату размером NxM, в каждой клетке которой лежало несколько килограммов золота.
Царь разрешил мудрецу обойти несколько клеток (переходя с клетки, где сейчас находится мудрец, в одну из четырёх с ней соседних), и собрать всё золото, которое попадётся на его пути.
Вам дан маршрут мудреца. Требуется определить, сколько килограммов золота он собрал.
Мудрец мог более одного раза проходить по одной и той же клетке. Золото с неё он брал при этом только один раз - когда проходил по клетке в первый раз.

Входные данные:
Вводится план комнаты. Сначала вводится количество строк N, затем количество столбцов M (1<=N<=20; 1<=M<=20). Затем записано N строк по M чисел в каждой - количество килограммов золота, которое лежит в данной клетке (число от 0 до 50). Далее записано число X-сколько клеток обошёл мудрец. Далее записаны координаты этих клеток (координаты клетки - это два числа: первое определяет номер строки, второе - номер столбца, верхняя левая клетка на плане имеет координаты (1,1), правая нижняя - (N,M)).
Выходные данные: выведите количество килограммов золота, которое собрал мудрец.
Пример ввода:
3 4
1 2 3 4
5 6 7 8
9 10 11 12
9
1 1
2 1
2 2
2 3
1 3
1 2
1 1
1 2
2 2
Пример вывода: 24
Но ещё раз повторюсь, что хотелось бы это организовать в win-32 приложении, с которым было бы удобно работать пользователю.
Заранее огромное спасибо!!!
Mixo123 вне форума Ответить с цитированием
Старый 18.10.2008, 01:19   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от Mixo123 Посмотреть сообщение
Мне не обязательно прямо кодом, мне хотя бы какими-то математическими алгоритмами.
...
Но ещё раз повторюсь, что хотелось бы это организовать в win-32 приложении, с которым было бы удобно работать пользователю.
Вторая задача интереснее, поэтому решил её. Как и куда вводить из задания неясно, поэтому создаём файл input.txt с входными данными и в консольном приложении (32-х разрядном) пишем
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  mas: array[1..20, 1..20] of word;
  N, M, i, j, k: byte;
  s: word;
  t: text;
begin
  assignfile(t, 'input.txt');
  reset(t);
  readln(t, N, M); //читаем размеры комнаты
  for i := 1 to N do
    for j := 1 to M do read(t, mas[i, j]); //считываем в массив
    //количество килограммов золота, которое лежит в данной клетке
  readln(t, k); //читаем сколько клеток обойдёт мудрец
  s := 0; //у мудреца вначале нет золота
  for i := 1 to k do
  begin
    readln(t, N, M); //читаем координаты клетки
    s := s + mas[N, M]; //берём золото
    mas[N, M] := 0 //теперь клетка пустая
  end;
  closefile(t);
  writeln('otvet = ', s); //ответ
  readln
end.
eoln вне форума Ответить с цитированием
Старый 18.10.2008, 07:15   #3
Mixo123
Новичок
Джуниор
 
Регистрация: 14.10.2008
Сообщений: 2
По умолчанию

Спасибо Вам огромное, выручили. )
Mixo123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типовые задачи в Delphi Speaker_102rus Помощь студентам 1 06.06.2008 14:47
2 задачи на delphi ЭД4-0014 Помощь студентам 16 19.04.2008 22:36
Задачи по Delphi ! Dreamer/ess Помощь студентам 3 06.03.2008 17:46
2 задачи на Delphi Vishez Помощь студентам 5 04.05.2007 11:36