Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 08.02.2015, 14:23   #1 (permalink)
Борисс
Новичок
 
Регистрация: 08.02.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Pascal, 10 класс

Известно количество очков, набранных каждой из 20-ти команд-участниц
первенства по футболу. Перечень очков дан в порядке убывания (ни одна пара команд не набрала одинаковое количество очков). Определить, какое место заняла команда, набравшая N очков (естественно, что значение N имеется в перечне). Условный оператор не использовать.

Сказали сделать через while
Борисс вне форума   Ответить с цитированием

Старый 08.02.2015, 14:23
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Может быть данные вопрос уже решен ранее

Усилитель Militano для наушников класс А
Десятый класс, Паскаль
TDA7294. Можно ли загнать в класс А?

Старый 08.02.2015, 14:39   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Да можно и через while, всё равно. Поможем с этой глупой задачкой, если Вы представите результаты хоть каких-то собственных попыток решения.
На всякий случай:
1. Формируете массив набранных очков A[i].
2. Задаете исходное значение i=1.
3. Строите цикл while A[i]>N do Inc[i];
4. Выводите значение i в качестве окончательного результата.
Вперед и песней!
Vladimir_S вне форума   Ответить с цитированием
Старый 08.02.2015, 14:55   #3 (permalink)
Борисс
Новичок
 
Регистрация: 08.02.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Главный минус в том, что нельзя использовать массивы
Борисс вне форума   Ответить с цитированием
Старый 08.02.2015, 15:12   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Борисс Посмотреть сообщение
Главный минус в том, что нельзя использовать массивы
Ну очень интересно! И как без массива задать этот "перечень очков"? Я как-то, знаете ли, не вижу...
Не ну можно, конечно, в файле. Или тоже "нельзя"?
Vladimir_S вне форума   Ответить с цитированием
Старый 08.02.2015, 15:18   #5 (permalink)
Борисс
Новичок
 
Регистрация: 08.02.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Это как раз то, что нужно
Борисс вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 08.02.2015, 15:30   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Понятно.
Тогда алгоритм такой:
1. Заранее формируете файл результатов чемпионата. Проще всего, если каждый результат будет располагаться в отдельной строке.
2. Командой Assign(f,'<полный путь и имя файла на диске>') связываете файловую переменную f с созданным файлом.
3. Командой Reset(f); открываете файл для чтения.
4. Задаете исходное значение i=0.
5. Переменной A присваиваете значение, заведомо большее максимального количества очков, набранных командой-чемпионом.
6. Строите цикл
Код:
while A>N do 
 begin
  Inc[i];
  Readln(f,A);
 end;
7. Командой Close(f); закрываете файл.
8. Выводите значение i в качестве окончательного результата.

Надеюсь, что справитесь.
Vladimir_S вне форума   Ответить с цитированием
Старый 08.02.2015, 15:36   #7 (permalink)
Борисс
Новичок
 
Регистрация: 08.02.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо огромное!
Борисс вне форума   Ответить с цитированием
Старый 08.02.2015, 15:38   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Борисс Посмотреть сообщение
Спасибо огромное!
Я там кое-что пропустил, сейчас исправил.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:57.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.