Четверг, 09.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Организовать массив...
rs-mmsДата: Пятница, 24.04.2009, 22:49 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 9
Репутация: 0
Замечания: 0%
Статус: Offline
Руководство фирмы анализирует работу за последние К лет. Одна из задач, кото-рая решается, заключается в определении самого длительного промежутка времени, в тече-ние которого некий обобщенный показатель М работы фирмы был постоянный. Написать программу определения и вывода на экран данного временного интервала (указать год нача-ла и год конца данного участка).

Надо создать массив, отсортировать чтобы найти промежуток, где чаще встречается М, а вот как привязать размерность массива (то есть К) к годам я незнаю....

 
SeqularДата: Суббота, 25.04.2009, 09:15 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
rs-mms, Параметр K задается в начале? Или после начала выполнения?
Если в начале, то используй константы.
Если после начала, то объяви массив с запасом (например до 30), а потом иди for i := 1 to k


Поддерживаю также проект сообщество молодых сисадминов
 
rs-mmsДата: Четверг, 14.05.2009, 18:09 | Сообщение # 3
Новичок
Группа: Пользователи
Сообщений: 9
Репутация: 0
Замечания: 0%
Статус: Offline
Вот что вышло:
Code

program_4;
uses crt;
type
   rec=record;
   god: integer;
   M: real;
   end;
const MAXP=30;
var
   Mas: array[1..MAXP] of Rec;
   N: integer;
   YO, YT: integer;
   i, j, d: integer;
   IskY, IskD: integer;
   f: boolean;
begin
   clrscr;
   write('Vvedite god nachala analiza: ');
   readln(YO);
   repeat
     write('Vvedite prodolgitelnost sroka analiza (ne bolshe',MAXP,' let): ');
     readln(N);
     if (N<1) or (N>MAXP) then
       writeln('Vvedeno nedopustimoe znachenie');
   until(N>=1) and (N<=MAXP);
   clrscr;
   writeln('Vvod xnachenia parametra M za razlichnye goda');
   for i:=1 to N do
   begin
     mas[i].God:=YO+i-1;
     write('Vvedite znachenie M za', Mas[i].God,'god');
     readln(mas[i].M);
   end;
   IskY:=1;
   IskD:=1;
   d:=1;
   f:=false;
   for i:=2 to N do
   begin
     if Mas[i].M=Mas[i-1].M then
       begin
         if f=false then
           begin
             f:=true;
             d:=2;
             YT:=i-1;
           end;
           else
             d:=d+1;
        end;
        else
          if f=true then
           begin
             f:=false;
             if d>IskD then
               begin
                 IskD:=D;
                 IskY:=YT;
               end;
               d:=1;
            end;
      end;
      if(f=true) and (d>IskD) then
        begin
          IskD:=d;
          IskY:=YT;
        end;
    write('Samyi dlinnyi period postoyanstva M: ');
    write(Mas[IskY].God,'-:-');
    writeln(Mas[IskY+IskD-1].God);
    writeln('pri M=', Mas[IskY].M:7:2);
    readln;
end.
 
LenochkaДата: Суббота, 06.06.2009, 05:15 | Сообщение # 4
Новичок
Группа: Пользователи
Сообщений: 2
Репутация: 0
Замечания: 0%
Статус: Offline
я извеняюсь, что пишу в этой теме, просто не знаю где писать(
помогите пожалуста решить пару задачёк...
 
SeqularДата: Суббота, 06.06.2009, 10:19 | Сообщение # 5
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Lenochka,
Создавайте отдельную тему с подробным описанием задачи в разделе "новые задачи" и поможем )


Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;