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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 22:39   #1
Дашуля_18
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 16
Восклицание задачку решила...но есть одно "но"

ее надо сделать с подпрограммами! помогите, кто знает! пожалуйста

Код:
program a;
uses crt;

const
   n = 5;
   m = 7;
   tek_god = 2008;
   min_zap = 100;
type anketa=record
   fio : string[45];
   god, deti : integer;
   invalid : boolean;
   ychv :  boolean;
   zarplata : integer;
   pomosch : integer;
   vsego : integer;
end;
var
   tablica: array [1..n] of anketa;
   i,j: integer;
   itogo : array [1..m] of LongInt;
   sredn_vozrast: real;
begin
   tablica[1].fio := 'Петров';
   tablica[2].fio := 'Иванов';
   tablica[3].fio := 'Соколов';
   tablica[4].fio := 'Федоров';
   tablica[5].fio := 'Котов';
   
   tablica[1].god := 1940;
   tablica[2].god := 1978;
   tablica[3].god := 1925;
   tablica[4].god := 1985;
   tablica[5].god := 1928;

   tablica[1].deti := 2;
   tablica[2].deti := 3;
   tablica[3].deti := 5;
   tablica[4].deti := 1;
   tablica[5].deti := 3;

   tablica[1].invalid := false;
   tablica[2].invalid := true;
   tablica[3].invalid := true;
   tablica[4].invalid := false;
   tablica[5].invalid := true;


   tablica[1].ychv := false;
   tablica[2].ychv := false;
   tablica[3].ychv := true;
   tablica[4].ychv := false;
   tablica[5].ychv := true;

   tablica[1].zarplata := 1500;
   tablica[2].zarplata := 1750;
   tablica[3].zarplata := 900;
   tablica[4].zarplata := 1600;
   tablica[5].zarplata := 1200;
   writeln;
   sredn_vozrast := 0;
   
   for i:=1 to n do
   begin
      write(tablica[i].fio:9);
      write(tablica[i].god:9);
      write(tablica[i].deti:9);
      if (tablica[i].invalid = true) then
      write('Да':9)
      else
      write('Нет':9);
      if (tablica[i].ychv = true) then
      write('Да':9)
      else
      write('Нет':9);
      write(tablica[i].zarplata:9);

      
      tablica[i].pomosch := 0;
      tablica[i].vsego := 0;
      if (tablica[i].deti > 2) then
      tablica[i].pomosch := tablica[i].pomosch + min_zap * tablica[i].deti;

   if (((tablica[i].invalid = true) or (tablica[i].ychv = true))
   and ((tek_god - tablica[i].god)>60)) then
      tablica[i].pomosch := tablica[i].pomosch +  min_zap * 2;
      
      tablica[i].vsego := tablica[i].zarplata + tablica[i].pomosch;

      sredn_vozrast := sredn_vozrast + (tek_god - tablica[i].god);
      
      write(tablica[i].pomosch:9);
      write(tablica[i].vsego:9);
      writeln;
   end;
   write('ИТОГО:':9);
   for i:=1 to n do
   begin
      itogo[1] := itogo[1] + tablica[i].god;
      itogo[2] := itogo[2] + tablica[i].deti;
      if (tablica[i].invalid = true) then
         itogo[3] := itogo[3] + 1;
      if (tablica[i].ychv = true) then
         itogo[4] := itogo[4] + 1;
      itogo[5] := itogo[5] + tablica[i].zarplata;
      itogo[6] := itogo[6] + tablica[i].pomosch;
      itogo[7] := itogo[7] + tablica[i].vsego;
   end;

   for i:=1 to m do
   begin
   write(itogo[i]:9)
   end;
   writeln;

   sredn_vozrast := sredn_vozrast / n;
   
   write('Средний возраст работников: ');
   writeln(sredn_vozrast);
   write('Ноябрь: ');
   writeln(tek_god);
   write('Минимальная зарплата: ');
   writeln(min_zap);

end.

Последний раз редактировалось ACE Valery; 21.05.2012 в 23:12.
Дашуля_18 вне форума Ответить с цитированием
Старый 22.05.2012, 08:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
program a;
uses crt;

const
   n = 5;
   m = 7;
   tek_god = 2008;
   min_zap = 100;
type anketa=record
   fio : string[45];
   god, deti : integer;
   invalid : boolean;
   ychv :  boolean;
   zarplata : integer;
   pomosch : integer;
   vsego : integer;
end;
var
   tablica: array [1..n] of anketa;
   i,j: integer;
   itogo : array [1..m] of LongInt;
   sredn_vozrast: real;

procedure Init; begin
   tablica[1].fio := 'Петров';
   tablica[2].fio := 'Иванов';
   tablica[3].fio := 'Соколов';
   tablica[4].fio := 'Федоров';
   tablica[5].fio := 'Котов';
   
   tablica[1].god := 1940;
   tablica[2].god := 1978;
   tablica[3].god := 1925;
   tablica[4].god := 1985;
   tablica[5].god := 1928;

   tablica[1].deti := 2;
   tablica[2].deti := 3;
   tablica[3].deti := 5;
   tablica[4].deti := 1;
   tablica[5].deti := 3;

   tablica[1].invalid := false;
   tablica[2].invalid := true;
   tablica[3].invalid := true;
   tablica[4].invalid := false;
   tablica[5].invalid := true;


   tablica[1].ychv := false;
   tablica[2].ychv := false;
   tablica[3].ychv := true;
   tablica[4].ychv := false;
   tablica[5].ychv := true;

   tablica[1].zarplata := 1500;
   tablica[2].zarplata := 1750;
   tablica[3].zarplata := 900;
   tablica[4].zarplata := 1600;
   tablica[5].zarplata := 1200;
end;

procedure second;var i:integer; begin
   writeln;
   sredn_vozrast := 0;
   
   for i:=1 to n do
   begin
      write(tablica[i].fio:9);
      write(tablica[i].god:9);
      write(tablica[i].deti:9);
      if (tablica[i].invalid = true) then
      write('Да':9)
      else
      write('Нет':9);
      if (tablica[i].ychv = true) then
      write('Да':9)
      else
      write('Нет':9);
      write(tablica[i].zarplata:9);

      
      tablica[i].pomosch := 0;
      tablica[i].vsego := 0;
      if (tablica[i].deti > 2) then
      tablica[i].pomosch := tablica[i].pomosch + min_zap * tablica[i].deti;

   if (((tablica[i].invalid = true) or (tablica[i].ychv = true))
   and ((tek_god - tablica[i].god)>60)) then
      tablica[i].pomosch := tablica[i].pomosch +  min_zap * 2;
      
      tablica[i].vsego := tablica[i].zarplata + tablica[i].pomosch;

      sredn_vozrast := sredn_vozrast + (tek_god - tablica[i].god);
      
      write(tablica[i].pomosch:9);
      write(tablica[i].vsego:9);
      writeln;
   end;
   write('ИТОГО:':9);
end;

procedure First;var i:integer; begin
   for i:=1 to n do
   begin
      itogo[1] := itogo[1] + tablica[i].god;
      itogo[2] := itogo[2] + tablica[i].deti;
      if (tablica[i].invalid = true) then
         itogo[3] := itogo[3] + 1;
      if (tablica[i].ychv = true) then
         itogo[4] := itogo[4] + 1;
      itogo[5] := itogo[5] + tablica[i].zarplata;
      itogo[6] := itogo[6] + tablica[i].pomosch;
      itogo[7] := itogo[7] + tablica[i].vsego;
   end;

   for i:=1 to m do
   begin
   write(itogo[i]:9)
   end;
   writeln;

   sredn_vozrast := sredn_vozrast / n;
 end;

begin  
   init;second;first;
   write('Средний возраст работников: ');
   writeln(sredn_vozrast);
   write('Ноябрь: ');
   writeln(tek_god);
   write('Минимальная зарплата: ');
   writeln(min_zap);

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввести фамилию, имя и отчество как одно данное строкового типа. Определить длину строки и количество букв "а" в ней. Вывести им layl Паскаль, Turbo Pascal, PascalABC.NET 2 03.05.2012 19:11
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
На одно "солнышко" стало меньше :) mutabor Свободное общение 26 20.09.2010 14:48
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Нет в русском языке "ложит", есть - "кладет". mihali4 Свободное общение 25 01.04.2008 11:19