Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2011, 23:03   #1
ТатьянаЧернышева
 
Аватар для ТатьянаЧернышева
 
Регистрация: 01.12.2011
Сообщений: 8
Стрелка Массивы. Паскаль.

Добрый вечер всем! Обращаюсь к соображающим людям за помощью!!!


Решить задачу, связаннуюс оценкой экономической деятельности филиалов предприятия на основе известных данных:
-Название филиала
-Плановый объем товарооборота каждого филиала.
-Количество работников в каждом филиале.
-Общая сумма премии.
Требуется определить:
1)Отклонение фактического от планового товарооборота каждого филиала.
2)Количество филиалов перевыполнивших план.
3)Филиал, с наименьшим количеством работников.
4)Обеспечить вывод информации о филиалах, названия которых содержат только буквы.
5)Упороядочить филиалы предприятия по убыванию количества работников.

Вот часть программы которая должна считывать из файла названия филиалов и их данные и выводить их на экран. Что то типо такого:
galereya 34 56 79
ikea 57 20 94
и тд... (до 20)

НО. Запускается и выводит какую то ошибку.... ПМОГИТЕ пожалуйста...

program zachetnaya;
var
f:text;
k,i:integer;
nazv:array[1..20] of string;
planv:array[1..20] of real;
rab:array[1..20] of integer;
sumprem:array[1..20] of real;

begin
assign(f,'FIL.dat');
reset(f);

writeln('Kolichestvo filialov: ');
readln(k);
writeln('№ Filial PlanV Rabochie Premiya');

for i: to k do
begin
readln(f, nazv[i], planv[i], rab[i], sumprem[i]);
writeln(i,' 'nazv[i],' ',planv[i],' ',rab[i],' ',sumprem[i]);
end;
end.


Заранее всем, всем спасибо... Надеюсь только на вас...
ТатьянаЧернышева вне форума Ответить с цитированием
Старый 22.12.2011, 23:13   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Странно, что вообще запускалась.

Сам не проверял, так как нет исходника, но, вроде как, должно быть так:
Код:
 
 var
 f:text;
 k,i:integer;
 nazv:array[1..20] of string;
 planv:array[1..20] of real;
 rab:array[1..20] of integer;
 sumprem:array[1..20] of real;
 S:char;

 begin
 assign(f,'FIL.dat');
 reset(f);

 writeln('Kolichestvo filialov: ');
 readln(k);
 writeln('№ Filial PlanV Rabochie Premiya');

 for i:=1 to k do
 begin
 read(f,S);
  while S in ['a'..'z'] do
    begin
      nazv[i]:=nazv[i]+S;
      read(f,S);
    end;
 read(F,planv[i]);
 read(F,rab[i]);
 read(F,sumprem[i]);
 readln(F);
 writeln(i,' ',nazv[i],' ',planv[i],' ',rab[i],' ',sumprem[i]);
 end;
 end.
Все тривиальное просто

Последний раз редактировалось whatever; 22.12.2011 в 23:33.
whatever вне форума Ответить с цитированием
Старый 22.12.2011, 23:19   #3
ТатьянаЧернышева
 
Аватар для ТатьянаЧернышева
 
Регистрация: 01.12.2011
Сообщений: 8
По умолчанию

Я конечно не проф в этом но ваш вариант не работает((
ТатьянаЧернышева вне форума Ответить с цитированием
Старый 22.12.2011, 23:25   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сам не проверял, так как нет исходника
Выложи FIL.dat где-нибудь, попробую еще раз. А вообще, на что ругается?

Можно попробовать " readln(f); " в конце убрать, лично я не знаю, как на него *.dat реагирует.

Update: тупанул немного, поправил предыдущее сообщение, попробуй так. Ну и с " readln(f); " поэксперементируй, как я выше написал.
Все тривиальное просто

Последний раз редактировалось whatever; 22.12.2011 в 23:35.
whatever вне форума Ответить с цитированием
Старый 22.12.2011, 23:31   #5
ТатьянаЧернышева
 
Аватар для ТатьянаЧернышева
 
Регистрация: 01.12.2011
Сообщений: 8
По умолчанию

"error in type" вот тут ему что-то не нравится
type
ABC=set of ['a'..'z'];


В файле вот так

Sportmaster 57 30 26
Rivgosh 48 10 40
Letyal 89 8 800
Newyorker 55 8 70
Otto 70 9 390
Kompmir 20 3 95
Oggi 48 5 60
Ikea 37 10 73
Ashan 45 16 45
Okey 50 14 63
Polyshka 67 8 60
Macdonalds 79 7 90
Karysel 56 9 59
Magnit 58 12 54
Akadempark 98 12 85
Mega 40 20 32
Oasis 70 7 70
Piramida 62 4 78
Galereya 97 10 99
Incity 69 6 70


спасибо за то помощь...
ТатьянаЧернышева вне форума Ответить с цитированием
Старый 22.12.2011, 23:39   #6
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Вот это:
Цитата:
ABC=set of ['a'..'z'];
вообще бред, походу надо спать идти, а то еще какой ереси напишу. Но поправленный вариант должен работать.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 22.12.2011, 23:49   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
program zachetnaya;
var
f:text;
k,i:integer;
nazv:array[1..20] of string;
planv:array[1..20] of real;
rab:array[1..20] of integer;
sumprem:array[1..20] of real;
s:string;
e:integer;
pl:real;
count:integer; mini:integer;
begin
assign(f,'c:\FIL.dat');
reset(f);

writeln('Kolichestvo filialov: ');
readln(k);
writeln('№ Filial PlanV Rabochie Premiya');

for i:=1 to k do
begin
readln(f,s);
 s:=s+' ';
nazv[i]:=copy(s,1,pos(' ',s)-1);delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1),planv[i],e) ;delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1),rab[i],e);delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1),sumprem[i],e);delete(s,1,pos(' ',s));
writeln(i,' ',nazv[i],' ',planv[i],' ',rab[i],' ',sumprem[i]);
end;
close(f);
Writeln('Enter Plan');
Readln(pl);
mini:=1;
count:=0;
writeln('==============1============');
For i:=1 to k do begin
if rab[i]<rab[mini] then mini:=i;
if (planv[i]-pl)>0 then count:=count+1;
writeln(nazv[i],'-->' ,planv[i]-pl);
end;
writeln('==============2============');
writeln('count=',count);
writeln('==============3============');
writeln(nazv[mini], rab[mini]);
writeln('==============4============');
for i:=1 to k do
begin
count:=0;
for e:=1 to length(nazv[i]) do
if not (nazv[i][e] in ['A'..'Z','a'..'z']) then begin count:=1;break;end;
if count<>1 then
writeln(' ',nazv[i],' ',planv[i],' ',rab[i],' ',sumprem[i]);
end;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 23.12.2011 в 00:15.
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы.Паскаль. vatakat Помощь студентам 9 07.09.2011 22:53
массивы (паскаль) AndrewPl Помощь студентам 14 25.04.2010 17:06
паскаль и массивы A.S.W Помощь студентам 3 07.01.2010 18:53
Паскаль. Массивы deceiver Помощь студентам 3 08.03.2009 15:12
Паскаль. Массивы Sexy Fox Помощь студентам 5 12.04.2008 21:45