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

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

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

 
 Ответить  Открыть новую тему 
> Переделайте с процедурами.
TreyOl
сообщение 21.02.2012 20:23
Сообщение #1


Новичок
*

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

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


Готовая программа, только требуют с процедурами что бы были команды.

помогитею

Код

uses crt;
const n=4;

type city=record
name:string;
nar: byte;
kol: integer;
end;

var
temp:string;
arr :array[1..n] of city;
i,max,q:integer;
Ans,nam:string;
Tname:string;
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('Введите город');
readln(temp);
for i:=1 to n do
  if temp=arr[i].name then Tname:=arr[i].name;

  if (temp<> arr[1].name) and (temp <> arr[2].name) and (temp<> arr[3].name) and (temp<>arr[4].name) then writeln('Вы ввели неверный город');
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('Производить ввод данных?(y/n)');
readln(ans);
until ans<>'y';

for i:=1 to n do
begin
writeln(i,' ', arr[i].kol);
  if max < arr[i].kol  then begin max:=arr[i].kol;
q:=i;

       end;
       end;
       writeln('Максимальное количество наркоманов в городе ',arr[q].name,', их ', max);


end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 21.02.2012 21:13
Сообщение #2


Профи
****

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

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


Ну не создавай ты новые темы,пиши в предыдущих,а по делу
Цитата
требуют с процедурами что бы были команды.

С процедурами это понятно,но вот обьясни, что за команды?футбольные чтоли? наркоманы на команды разбились?Пожалуйста,пиши болеее развернуто,что тебе нужно.Тогда тебе быстрее и правильнее ответят.Если вы все таки отказались от использования перечислимых типов,то ваш код можно изрядно сократить.Например надобность в переменной Tname вообще отпала, можно смело удалить все,где оно попадается.
if Tname=arr[i].name then станет if temp=arr[i].name then
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TreyOl
сообщение 22.02.2012 8:43
Сообщение #3


Новичок
*

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

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


Цитата(Krjuger @ 21.02.2012 21:13) *

Ну не создавай ты новые темы,пиши в предыдущих,а по делу



Нужно использовать модуль и соответственно + процедуры.

эта часть идет как отдельная процедура
writeln('Введите город');
readln(temp);
for i:=1 to n do
if temp=arr[i].name then Tname:=arr[i].name;

if (temp<> arr[1].name) and (temp <> arr[2].name) and (temp<> arr[3].name) and (temp<>arr[4].name) then writeln('Вы ввели неверный город');


потом эта
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('Производить ввод данных?(y/n)');
readln(ans);


и последняя
for i:=1 to n do
begin
writeln(i,' ', arr[i].kol);
if max < arr[i].kol then begin max:=arr[i].kol;
q:=i;

end;
end;


просьба использовать паскалевские теги (см. п.2 вверху этой страницы)

Сообщение отредактировано: Lapp - 22.02.2012 11:40
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krjuger
сообщение 22.02.2012 16:52
Сообщение #4


Профи
****

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

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


Ну тогда все будет вот так вот.Вот файл модуля.

Unit Help2;

interface
type
city=record
name:string;
nar: byte;
kol: integer;
end;

procedure MyCreate(var arr:array of city);
procedure MyInput(n:integer;var arr:array of city;temp:string);
function MySearch(n:integer;arr:array of city):integer;

implementation

procedure MyCreate;
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;
end;

procedure MyInput;
var
i:integer;
begin
if (temp<> arr[1].name) and (temp <> arr[2].name) and (temp<> arr[3].name) and (temp<>arr[4].name) then
writeln('Вы ввели неверный город');
for i:=1 to n do
if temp=arr[i].name then
begin
writeln('употребляешь нарктотики?');
readln(arr[i].nar);
if arr[i].nar=1 then
arr[i].kol:=arr[i].kol+1;
end;
end;

function MySearch;
var
i:integer;
max:integer;
begin
max:=0;
for i:=1 to n do
begin
writeln(i,' ', arr[i].kol);
if max < arr[i].kol then
begin
max:=arr[i].kol;
MySearch:=i;
end;
end;
end;
begin
end.


Ну а вот сам файл программы.

uses Help2;
const n=4;
Var
arr:array[1..4] of city;
numb:integer;
temp:string;
ans:string;
begin
MyCreate(arr);
repeat
writeln('Введите город');
readln(temp);
MyInput(n,arr,temp);
writeln('Производить ввод данных?(y/n)');
readln(ans);
until ans<>'y';

numb:=MySearch(n,arr);
writeln('Narikov bolshe v ',arr[numb+1].name,', ih ', arr[numb+1].kol);
readln;
end.


Пробуй проверяй,пиши результат и не пропадай,новую тему тоже создавать ненадо. smile.gif


P.s.Вопрос к более опытным.Поначалу, я хотел цикл Repeat until оставить внутри процедуры MyInput, но на строке readln(temp); он мне начал выдавать ошибку 104, что не может найти путь к файлу....Пришлось цикл вынести и передавать temp, как переменную,но почему такое произошло я не могу понять.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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