• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Нужна помощь на Паскале

nataliacombat

Ученик
Регистрация
1 Дек 2011
Сообщения
3
Реакции
0
Баллы
0
Нужна помощь на Паскале

Люди помогите плиииз с паскалем))
решить задачу,связанную с оценкой экономической деятельности группы предприятий на основе известных данных:
1)название предприятий
2)фактический объем розничного товарооборота
3)сумма полученной прибыли за последний год
4)среднесписочное кол-во работников предприятия
требуется определить:
1)сумму прибыли, приходящейся на одного работника, по каждому предприятию
2)кол-во предприятий,число работников которых находится в заданном диапозоне
3)предприятие с наименьшим среднесписочным кол-ом работников
4)обеспечить вывод информации о предприятиях по заданным последним буквам
5)упорядочить предприятия по убыванию прибыли.
 
названия:
газпром
лукоил
сургутнефтегаз
роснефть
нефтегаз.
факт:
15000
12000
10000
9000
13000
сумма:
500000
600000
450000
550000
400000
рабочие:
100
60
46
28
30.
 
Пожалуйста.
Исходные данные берутся из файла Data.txt, расположенного на диске D:. Естественно, имя, расположение и содержимое файла можете поменять, оставив лишь общее количество фирм (5). Вид файла данных:
Код:
названия:
газпром
лукоил
сургутнефтегаз
роснефть
нефтегаз
факт:
15000
12000
10000
9000
13000
сумма:
500000
600000
450000
550000
400000
рабочие:
100
60
46
28
30
Он отличается от Вашего списка тем, что убраны точки после "нефтегаз" и "30".
Теперь сама программа:
Код:
TYPE
 Frm=Record
      Name:String;
      Volume:Longint;
      Profit:Longint;
      Staff:Word;
     end;
VAR
 Org:Array[1..5] of Frm;
 f:Text;
 i,j,Num:Byte;
 Nmin,Nmax,Min_Staff:Word;
 Last_Let:Char;
 Dummy:Frm;

BEGIN
 Assign(f,'D:\data.txt');
 ReSet(f);
 Readln(f);
 For i:=1 to 5 do
  With Org[i] do
   Readln(f,Name);
 Readln(f);
 For i:=1 to 5 do
  With Org[i] do
   Readln(f,Volume);
 Readln(f);
 For i:=1 to 5 do
  With Org[i] do
   Readln(f,Profit);
 Readln(f);
 For i:=1 to 5 do
  With Org[i] do
   Readln(f,Staff);
 Close(f);

 Writeln('Initial data and profit per worker:');
 For i:=1 to 5 do
  With Org[i] do
   begin
    Write(i:1,'  ',Name);
    for j:=length(Name) to 18 do write(' ');
    Writeln(Volume:12,Profit:12,Staff:8,1.0*Profit/Staff:12:2);
   end;
 Writeln;

 Num:=0;
 Write('Minimal number of workers: ');
 Readln(Nmin);
 Write('Maximal number of workers: ');
 Readln(Nmax);
 For i:=1 to 5 do
  If (Org[i].Staff>=Nmin) and (Org[i].Staff<=Nmax) then Inc(Num);
 Writeln(Num,' firms');
 Writeln;

 Min_Staff:=Org[1].Staff;
 j:=1;
 For i:=2 to 5 do
  If Org[i].Staff<Min_Staff then
   begin
    Min_Staff:=Org[i].Staff;
    j:=i;
   end;
 Writeln('The minimal number of workers has '+Org[j].Name);
 Writeln;

 Write('Enter the last letter: ');
 Readln(Last_Let);
 For i:=1 to 5 do
  With Org[i] do
   If Name[length(Name)]=Last_Let then
    begin
     Write(i:1,'  ',Name);
     for j:=length(Name) to 18 do write(' ');
     Writeln(Volume:12,Profit:12,Staff:8);
    end;
 Writeln;

 For j:=1 to 5 do
  for i:=1 to 5-j do
   If Org[i].Profit<Org[i+1].Profit then
    begin
     Dummy:=Org[i];
     Org[i]:=Org[i+1];
     Org[i+1]:=Dummy;
    end;

 Writeln('Ordered by profit decrease:');
 For i:=1 to 5 do
  With Org[i] do
   begin
    Write(i:1,'  ',Name);
    for j:=length(Name) to 18 do write(' ');
    Writeln(Volume:12,Profit:12,Staff:8);
   end;

 Readln;
END.
 
огромное спасибо Вам=)выручили)))а блок-схема как будет выглядеть
 
Назад
Сверху