Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 28.11.2016
Сообщений: 67
1

Найти багаж, средний вес одной вещи в котором отличается не более чем на m кг от общего среднего веса одной

31.01.2017, 11:48. Просмотров 332. Ответов 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
38
39
40
41
42
43
44
45
46
47
48
49
uses Crt;
type
bagaz=record
     kol:byte;
     ves:real;
     end;
var bg:bagaz;
    n,m,k:integer;
    f:file of bagaz;
    sr:real;
    c:char;
begin
clrscr;
assign(f,'bagaz');
rewrite(f);
writeln('Введите данные о багаже, окончание ввода Esc:');
n:=0;sr:=0;
repeat;
n:=n+1;
writeln('Багаж ',n);
write(' Количество вещей: ');readln(bg.kol);
write(' Вес: ');readln(bg.ves);
sr:=sr+bg.ves;//считаем общий вес
k:=k+bg.kol;//общее количество
write(f,bg);//пишем в файл
c:=readkey;//ждем нажатия клавиши
until c=#27;//если Esc, заканчиваем ввод
sr:=sr/k;//средний вес 1 вещи
writeln('Средний вес 1 вещи=',sr:0:3);
write('Введите вес вещи для сравнения m=');
readln(m);
writeln('Багаж, средний вес 1 вещи в котором отличается');
writeln('не более чем на ',m,' кг от общего среднего веса одной вещи:');
k:=0;
reset(f);
while not eof(f) do
 begin
  read(f,bg);//читаем запись
  if abs(bg.ves/bg.kol-sr)<m then//если модуль разности среднего веса 1 вещи в багаже
                                  //и общего среднего меньше заданного числв
   begin
    k:=1;//фиксируем и выводим кол.мест, общий вес и средний вес 1 вещи
    writeln('Кол.мест=',bg.kol,'  общий вес=',bg.ves:0:3,'  ср.вес=',bg.ves/bg.kol:0:3);
   end;
 end;
if k=0 then write('Такого багажа нет!');
close(f);
readln
end.
нужно написать меню к задачи, с добавлением и удалением))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2017, 11:48
Ответы с готовыми решениями:

Структура: Найти багаж, средний вес одной вещи, в котором отличается не более чем на 0.3 кг от общего среднего веса одной вещи
Помогите с лабой. За ранее спасибо) Багаж пассажира характеризуется количеством вещей и общим...

Найти багаж, средний вес одной вещи, в котором отличается не более чем на 0,3 кг от общего среднего веса
багаж пассажира характеризуется количеством вещей и общим весом вещей. дан фаил f, содержащий...

Записи: Найти багаж, вес одной вещи в котором отличается не более, чем на 0.3 кг от общего среднего веса
Тема: Записи. Работа с текстовыми файлами. Дан файл f, содержащий сведения о багаже нескольких...

Найти багаж, средний вес одной вещи в котором отличается не более, чем на 0.3 кг: Блок-схема
Есть вот такая вот задача на записи: Багаж пассажира характеризуется количеством вещей и общим...

2
0 / 0 / 0
Регистрация: 28.11.2016
Сообщений: 67
02.02.2017, 07:39  [ТС] 2
Срочно нужно, пожалуйста)
0
Модератор
Эксперт Pascal/Delphi
6194 / 4177 / 4579
Регистрация: 05.06.2014
Сообщений: 20,568
03.02.2017, 14:04 3
Часть кода взята отсюда:
Написать процедуру удаления записи из файла

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
uses 
  Crt;
type
  bagaz = record
    kol: word;
    ves: real;
  end;
  fail = file of bagaz;
 
var
  bg: bagaz;
  n, m, k: integer;
  f: fail;
  sr: real;
  key: integer;
  c: char;
 
procedure DeleteFromFile(var f: fail);//удаление записи по номеру
var
  n, i: integer;
  c: char;
  x: bagaz;
begin
  write('Удалить запись № ');
  readln(n);//водим номер, именно номер, а не индекс
  reset(f);
  if (filesize(f) < n) or (n < 0) then
  begin
    writeln('В файле нет такой записи');
    close(f);
    write('Press Enter...');
    readln;
    exit;
  end;
  if n = filesize(f) then//если запись последняя
  begin
    seek(f, filesize(f) - 1);
    truncate(f);
    close(f);
    write('Press Enter...');
    readln;
    exit;
  end;
  seek(f, n - 1);//не последняя
  for i := n - 1 to filesize(f) - 2 do
  begin
    seek(f, i + 1);
    read(f, x);
    seek(f, i);
    write(f, x);
  end;
  seek(f, filesize(f) - 1);
  truncate(f);
  close(f);
  write('Press Enter...');
  readln
end;
 
procedure InsertToFile(var f: fail);
begin
  reset(f);
  seek(f, filesize(f));
  write(' Количество вещей: ');
  readln(bg.kol);
  write(' Вес: ');
  readln(bg.ves);
  write(f, bg);//пишем в файл
  close(f);
end;
 
procedure CreateFile();
begin
  rewrite(f);
  writeln('Введите данные о багаже, окончание ввода Esc:');
  n := 0;
  sr := 0;
  k := 0;
  repeat
    n := n + 1;
    writeln('Багаж ', n);
    write(' Количество вещей: ');
    readln(bg.kol);
    write(' Вес: ');
    readln(bg.ves);
    sr := sr + bg.ves;//считаем общий вес
    k := k + bg.kol;//общее количество
    write(f, bg);//пишем в файл
    c := readkey;//ждем нажатия клавиши
  until c = #27;//если Esc, заканчиваем ввод
  writeln;
  writeln('Общее количество вещей: ', k);
  writeln('Общий вес: ', sr);
  
end;
 
begin
  assign(f, 'bagaz');
  while true do
  begin
    clrscr;
    writeln('1. Создание файла');
    writeln('2. Просмотр файла');
    writeln('3. Поиск записи в файле');
    writeln('4. Добавление записи в файл');
    writeln('5. Удаление записи из файла');
    writeln('0. Выход');
    readln(key);
    case key of 
      1: CreateFile;
      2:
        begin
          clrscr;
          reset(f);      
          while not eof(f) do
          begin
            read(f, bg);//читаем запись
            writeln(' Количество вещей: ', bg.kol);
            writeln(' Вес: ', bg.ves);
          end;  
          readln;
        end;
      3:
        begin
          reset(f);      
          sr := 0;
          k := 0;
          while not eof(f) do
          begin
            read(f, bg);//читаем запись
            sr := sr + bg.ves;//считаем общий вес
            k := k + bg.kol;//общее количество
          end;  
          reset(f);
          sr := sr / k;//средний вес 1 вещи
          writeln('Средний вес 1 вещи=', sr:0:3);
          write('Введите вес вещи для сравнения m=');
          readln(m);
          writeln('Багаж, средний вес 1 вещи в котором отличается');
          writeln('не более чем на ', m, ' кг от общего среднего веса одной вещи:');
          k := 0;
          reset(f);
          while not eof(f) do
          begin
            read(f, bg);//читаем запись
            if abs(bg.ves / bg.kol - sr) < m then//если модуль разности среднего веса 1 вещи в багаже
                                  //и общего среднего меньше заданного числв
            begin
              k := 1;//фиксируем и выводим кол.мест, общий вес и средний вес 1 вещи
              writeln('Кол.мест=', bg.kol, '  общий вес=', bg.ves:0:3, '  ср.вес=', bg.ves / bg.kol:0:3);
            end;
          end;
          if k = 0 then 
            write('Такого багажа нет!');
        end;
      4: InsertToFile(f);
      5: DeleteFromFile(f);
      0:
        begin
          Close(f);
          exit;
        end;  
    end;
  end;
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2017, 14:04

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

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

Кто может написать программу нахождения багажа, средний вес одной вещи отличается не более, чем на Т
Помогите написать программу нахождения багажа, средний вес одной вещи отличается не более, чем на Т...

Найти багаж, средний вес одной вещи в котором отличается не более чем на m кг от общего
Доброе время суток, напишите пожалуйста код для решения задачи. Багаж пассажира характеризуется...

Найти багаж, средний вес одной вещи, в котором отличается не более чем на 0.3 кг
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Сведения о багаже каждого...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.