IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Программа о статистике употребления наркотиков в разных городах, Помогите подредактировать.
TreyOl
сообщение 16.02.2012 16:13
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


(начало тут: помогите.[двумерные массивы+записи] , Lapp )

В N городах провели обследование жителей на предмет употребления или не-употребления ими наркотиков (1 - употребляет, 0 - не употребляет). Результаты обсле-дования жителей поступают не упорядоченными по городам. Определить города с мак-симальной тенденцией к употреблению наркотиков.


uses crt;
const n=4;
type
town=(Magnitogorsk,Saratov,Moscow,Perm);
type city=record
name:town;
nar: byte;
kol: integer;
end;

var
temp:string;
arr :array[1..n] of city;
i:integer;
Ans:char;
Tname:town;
begin
arr[1].name:=Magnitogorsk;
arr[2].name:=Saratov;
arr[3].name:=Moscow;
arr[4].name:=Perm;
arr[1].kol:=0;
arr[2].kol:=0;
arr[3].kol:=0;
arr[4].kol:=0;
repeat
writeln('Vvedite gorod');
readln(temp);
if temp='Magnitogorsk' then
Tname:=Magnitogorsk
else
if temp='Saratov' then
Tname:=Saratov
else
if temp='Moscow' then
Tname:=Moscow
else
if temp='Perm' then
Tname:=Perm
else
writeln('Vi vveli neverniy gorod');

for i:=1 to n do
if Tname=arr[i].name then
begin
writeln('употребляешь нарктотики?');
readln(arr[i].nar);
if arr[i].nar=1 then
arr[i].kol:=arr[i].kol+1;
end;
writeln('prodolzit* vvod?(y/n)');
Ans:=readkey;
until ans<>'y';
for i:=1 to n do
writeln(i,' ', arr[i].kol);

readln;
end.


Сообщение отредактировано: Lapp - 17.02.2012 6:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 16.02.2012 16:23
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


подредактировать чтобы получить какой результат? т.е. какова цель редактирования?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TreyOl
сообщение 16.02.2012 16:26
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский
Реальное имя: Юлия

Репутация: -  0  +


Цитата(мисс_граффити @ 16.02.2012 16:23) *

подредактировать чтобы получить какой результат? т.е. какова цель редактирования?

Да..
там немного не так с выводом города.
и нужно в конце вывести город с наибольшим результатом.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 16.02.2012 17:54
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


А попросить помощи в старой теме,где основа сего творенья была написана, религия не позволяет???
Для того,чтобы вывести город с максимальным результатом,его дня начала надо найти,что было вам сказано еще в прошлый раз...Более того, вариант, когда вместо одного из городов вы напишите какую-нибудь лабуду, работать не станет, угадайте почему smile.gif А сам вывод будет практически идентичным тому,как делался ввод.

if Res=Magnitogorsk then
writeln('Magnitogorsk')
else
if Res=Saratov then
writeln('Saratov')
else
if Res=Moscow then
writeln('Moscow')
else
writeln('Perm');


Ну а как найти максимум и присвоить значение соотв. города переменной Res, придумайте сами, кстати Res: town;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 17.02.2012 6:20
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Юля, Крюгер прав, лучше было бы продолжить старую тему. Я не стал объединять, но название именил (читай Правила!)

По теме..
Крюгер, а почему бы не употребить оператор case? Он как раз для таких случаев сделан.
case Res of
Magnitogorsk: writeln('Magnitogorsk');
Saratov: writeln('Saratov');
Moscow: writeln('Moscow');
Perm: writeln('Perm');
else writeln('town is not recognized');
end;


Но я бы посоветовал сделать не так, а вот так..
Вставь после описания типа town:
const
TownName: array[town] of string[20]= ('Magnitogorsk','Saratov','Moscow','Perm');

А при выводе результата поступай так:
writeln('Самый наркозависимый город: ',TownName[Res]);


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 17.02.2012 15:07
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Откуда я знаю, что знает ТС,а что нет,уж условие if она должна знать.Я и так только с 3 попытки более менее понял условие задачи,так вот человек обьясняет задачу.
Я вообще не понимаю, зачем нужны в этой задаче перечислимые типы,без них задача решается в разы короче и проще, всего 1 массивом из 4 целых чисел.

Сообщение отредактировано: Krjuger - 17.02.2012 15:08
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 20.02.2012 6:24
Сообщение #7


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Krjuger @ 17.02.2012 16:07) *
Откуда я знаю, что знает ТС,а что нет
А какая тебе разница?.. blink.gif Решай, как считаешь нужным (то есть наилучшим способом). А на проблемы реагируй, когда они возникнут - зачем придумывать ограничения самому заранее?

Цитата
только с 3 попытки более менее понял условие задачи,так вот человек обьясняет задачу.
эээ.. ))) у тебя, извини, тоже бывают не совсем понятные посты.. ))
Это один из приятных моментов на форуме - учиться понимать других и ясно выражаться самому. Воспринимай это как бонусную задачу )).

Цитата
Я вообще не понимаю, зачем нужны в этой задаче перечислимые типы,без них задача решается в разы короче и проще, всего 1 массивом из 4 целых чисел.
В упражнениях часто так - можно проще решить иначе, но нужно использовать именно это. Что же касается именно перечислимых типов - oh boy, я с трудом припоминаю примеры, где они действительно уместны..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 20.02.2012 10:45
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Кстати, меня бесит, когда между else и if ставят перенос строки и заводят новый блок.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 20.02.2012 13:12
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


На вкус и цвет товарищей нет,возможно у меня опыта в вычитывании кода маловато,но мне привычней так, и так меня учили, весомых причин,чтобы делать по другому я не вижу покачто.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 20.02.2012 14:06
Сообщение #10


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Причина в том, чтобы не городить лесенку там, где условия по смыслу равноправны.
Во многих языках даже есть готовый оператор elseif. Зачастую это связано с тем, что операторные скобки в них обязательны и без elseif все были просто обязаны делать лесенки, и это не устраивало народ, вот и ввели этот оператор.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 20.02.2012 17:50
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Не сталкивался, приму к сведениям.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 14:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"