0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 20
1

Напечатать списки водителей, перевыполнивших план более чем на 5%

27.04.2011, 13:23. Показов 965. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны массивы
F1...F10 - фамилии водителей
S1...S10 - выручка за смену и PL - плановая выручка
Напечатать списки водителей, перевыполнивших план более чем на 5%
Отдельно указать фамилии водителей, не выполнивших план
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2011, 13:23
Ответы с готовыми решениями:

Напечатать список автопредприятий, не выполнивших план грузооборота более чем на 10%
Даны шифры предприятий, плановый и реальный грузообороты в ткм. Напечатать список автопредприятий,...

Отдельно напечатать список водителей у которых расход топлива более 10 л на 100 км
Даны массивы F1....F20 - фамилия водителей NF1....NF20 -номерные знаки автомашины S1.....S20...

Напечатать списки цехов, в которых соотношение рабочих и инженерно-технических работников более 1,5 и менее 2
Нужно сделать с помощью(используя) записей. Даны шифры десяти цехов, численности рабочих и...

Напечатать список премированных водителей
ниче не понимаю в массивах,на черкайте что нить рабочее плз, практику закрыть не могу....

10
92 / 46 / 22
Регистрация: 11.02.2010
Сообщений: 187
27.04.2011, 14:28 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program Plan;
 
var
    F:array[1..10] of string;
    S:array[1..10] of integer;
    PL, i: integer;
    pr: real; //Проценты от плана
begin
  PL:= 2500;  //План
 //вычисление значение с процентами
  pr:= PL + (PL * 5 /100);
 //Заполнение массива с фамилиями
  F[1]:='Antonov';
  F[2]:='Berikov';
  F[3]:='Popov';
  F[4]:='Petrov';
  F[5]:='Ivanov';
  F[6]:='Sidorov';
  F[7]:='Kondrat';
  F[8]:='Svistunov';
  F[9]:='Lopuxov';
  F[10]:='Petuxov';
  //Заполнение массива выручкой за смену и вывод на экран
  for i:= 1 to 10 do begin
    S[i]:= random(5000);
    Writeln('Viruchka za smenu u ', F[i], ' = ', S[i]);
    end;
  //Нахождение фамилий с не выполнением и перевыполнением плана
  for i:= 1 to 10 do  begin
    if S[i] > pr then
      Writeln(F[i], ' perevipolnil plan');
    if S[i] < PL then
        Writeln(F[i], ' ne vipolnil plan');
 
    end;
   Readln;
end.
1
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 20
01.05.2011, 11:09  [ТС] 3
помогите еще решить задачу такого же плана, пожалуйста!
Даны массивы:
F1...F10 - фамилии сотрудников отдела;
Z1..Z10 - зарплата каждого;
PR1...PR10 - процент выполнения плана;
FPR - премиальный фонд на отдел
Распределить фонд между сотрудниками, выполнившими план, пропорционально из зарплате. Отдельно указать фамилию сотрудника с максимальной премией
0
92 / 46 / 22
Регистрация: 11.02.2010
Сообщений: 187
03.05.2011, 09:50 4
Цитата Сообщение от Steckdose Посмотреть сообщение
пропорционально из зарплате.
не совсем понятно какое пропорциональное соотношение брать?
0
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 20
13.05.2011, 12:49  [ТС] 5
любую)
0
92 / 46 / 22
Регистрация: 11.02.2010
Сообщений: 187
13.05.2011, 15:02 6
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
program Premiya;
 
 var
    F:array[1..10] of string; //массив фамилий
    Z:array[1..10] of integer; //массив зар. платы
    PR:array[1..10] of integer;  //массив выполнения плана
    FPRm: array[1..10] of real; //результирующий массив премий
    FPR, i, t: integer;
    max: real;
 
begin
  FPR:= 10000;  //Премия
  max:= 0;
  t:= 0;  //Переменная для хранения индекса с макс премией
 
 //Заполнение массива с фамилиями
  F[1]:='Antonov';
  F[2]:='Berikov';
  F[3]:='Popov';
  F[4]:='Petrov';
  F[5]:='Ivanov';
  F[6]:='Sidorov';
  F[7]:='Kondrat';
  F[8]:='Svistunov';
  F[9]:='Lopuxov';
  F[10]:='Petuxov';
 
 //Заполнение массивов зар. платы и процентов плана
  for i:= 1 to 10 do begin
    Z[i]:= random(10000)+1000;
    PR[i]:= random(100)-20;
    end;
 
 //Распределение премии
  for i:= 1 to 10 do  begin
    if Z[i] > 0 then
      FPRm[i]:= FPR*100/Z[i]
    else FPRm[i]:= 0;
 //Нахождение фамилии с максимальной премией
    if FPRm[i] > max then  begin
      max:= FPRm[i];
      t:= i;
      end;
    end;
 
 //Вывод на экран данных
   for i:= 1 to 10 do
    Writeln('Sotrudnik ', F[i], ' zar. plata= ', Z[i], ' plan %= ', PR[i], ' premiya= ', FPRm[i]:2:2);
 
 //Вывод  фамилии с маскимальной премией
    Writeln('Samaya bolwaya primiya u = ', F[t]);
   Readln;
end.
1
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 20
13.05.2011, 15:11  [ТС] 7
а с каким ты соотношением брала?
0
92 / 46 / 22
Регистрация: 11.02.2010
Сообщений: 187
13.05.2011, 15:13 8
Цитата Сообщение от Ksana_ Посмотреть сообщение
FPRm[i]:= FPR*100/Z[i]
Исходя, из этой строки 100:1
0
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 20
13.05.2011, 15:20  [ТС] 9
спасибо огромное=*
0
92 / 46 / 22
Регистрация: 11.02.2010
Сообщений: 187
13.05.2011, 15:33 10
Подождите минуту, немного неправильный алгоритм, там не распределяется вся премия

Добавлено через 8 минут
Соотношение 1:1, если необходимо распределение всей премии, то стоит использовать этот вариант
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
program Premiya;
 
 var
    F:array[1..10] of string; //массив фамилий
    Z:array[1..10] of integer; //массив зар. платы
    PR:array[1..10] of integer;  //массив выполнения плана
    FPRm: array[1..10] of real; //результирующий массив премий
    FPR, i, t, sum: integer;
    max: real;
 
begin
  FPR:= 10000;  //Премия
  max:= 0;
  t:= 0;  //Переменная для хранения индекса с макс премией
  sum:= 0;
 
 //Заполнение массива с фамилиями
  F[1]:='Antonov';
  F[2]:='Berikov';
  F[3]:='Popov';
  F[4]:='Petrov';
  F[5]:='Ivanov';
  F[6]:='Sidorov';
  F[7]:='Kondrat';
  F[8]:='Svistunov';
  F[9]:='Lopuxov';
  F[10]:='Petuxov';
 
 //Заполнение массивов зар. платы и процентов плана
  for i:= 1 to 10 do begin
    Z[i]:= random(10000)+1000;
    PR[i]:= random(100)-20;
    sum:= sum + Z[i];
    end;
 
 //Распределение премии
  for i:= 1 to 10 do  begin
    if Z[i] > 0 then
      FPRm[i]:= (FPR/sum) * Z[i]
    else FPRm[i]:= 0;
 //Нахождение фамилии с максимальной премией
    if FPRm[i] > max then  begin
      max:= FPRm[i];
      t:= i;
      end;
    end;
 
 //Вывод на экран данных
   for i:= 1 to 10 do
    Writeln('Sotrudnik ', F[i], ' zar. plata= ', Z[i], ' plan %= ', PR[i], ' premiya= ', FPRm[i]:2:2);
 
 //Вывод  фамилии с маскимальной премией
   Writeln('Samaya bolwaya primiya u = ', F[t]);
   Readln;
end.
1
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 20
13.05.2011, 16:00  [ТС] 11
да, здесь лучше премия распределяемся, так лучше)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2011, 16:00
Помогаю со студенческими работами здесь

Напечатать все гласные буквы, которые не входят более чем в одно слово
Дана непустая последовательность слов из русских букв: между соседними словами – произвольное...

Множества. Напечатать все гласные, которые входят не более, чем в одно слово
Помогите решить задачку. Дан текст, состоящий из слов; между соседними словами - запятая, за...

Напечатать все звонкие согласные буквы, которые входят более чем в одно слово
Дан текст из строчных латинских букв, за которым следует точка. Напечатать: все звонкие согласные...

Составить и напечатать множество, состоящее из согласных букв, входящих более чем в одно слово
Дана непустая последовательность строчных букв английского алфавита, организованная в слова,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru