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

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

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

> Переделайте с процедурами.
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 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

 





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