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

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

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

> Программа о статистике употребления наркотиков в разных городах, Помогите подредактировать.
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 10)
сообщение
Сообщение #2


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

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

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


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


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


Новичок
*

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

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


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

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

Да..
там немного не так с выводом города.
и нужно в конце вывести город с наибольшим результатом.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

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

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


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

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


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

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

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


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

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

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


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


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

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

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


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


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


Профи
****

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

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


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


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

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

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


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


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


Профи
****

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

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


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

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

 





- Текстовая версия 19.05.2024 22:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name