Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 8
1

Создать файл "сведения о кубиках"

29.12.2011, 00:00. Показов 1434. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
задание 513-(б) прошу могите написать программу.

Очень нужна ваша помощь а то препод меня созжёт на костре!
Вложения
Тип файла: pdf Ксерокс. Типизированные файлы. ПР.pdf (1.31 Мб, 55 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2011, 00:00
Ответы с готовыми решениями:

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

Дан файл f, содержащий сведения о кубиках. Найти количество каждого из цветов и их суммарный объем
Дан файл f, содержащий сведения о кубиках: размер каждого кубика (длина ребра в сантиметрах), его...

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

Создать файл содержащий сведения о кубиках
1. Создать файл "Кубики", содержащий сведения о кубиках: размер (длина ребра), цвет (из семи цветов...

16
--\.founder./--
565 / 565 / 392
Регистрация: 20.10.2011
Сообщений: 867
29.12.2011, 00:35 2
Ща напишу (наверно)
2
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 8
29.12.2011, 00:43  [ТС] 3
буду ооочень благодарен!!!)
0
--\.founder./--
565 / 565 / 392
Регистрация: 20.10.2011
Сообщений: 867
29.12.2011, 00:50 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

С помощью этой программы создаете типизированный файл записей ( про кубики ) :

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
 { создаем файл записей про кубики }
 uses crt;
 
 Type Kubik = record
        DlinaR  : integer;
        Cvet    : string;
        Materija: string;
      end;
      
 var
 f:file of Kubik;
 s: Kubik;
 i,n:integer;
 
 begin
 assign(f,'in.dat');
 rewrite(f);
 Write('Введите кол-во кубиков: '); readln(n);
 For i:=1 to n do
   begin
   write('Длина ребра ',i,'-го кубика: ');   readln(s.dlinaR);
   write('Цвет кубика: ');                   readln(s.cvet);
   write('Материал: ');                      readln(s.Materija);
   writeln;
   Write(f,s);
   end;
 close(f);
 end.
С помощью этой программы осуществляете поиск кубиков по данным критериям:

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
 { открываем созданный ранее файл и ищем кубики }
 uses crt;
 
 Type Kubik = record
        DlinaR  : integer;
        Cvet    : string;
        Materija: string;
      end;
 
 var
 f:file of Kubik;
 s: Kubik;
 i,x,y,n:integer;
 
 begin
 assign(f,'in.dat');
 reset(f);
 while not eof(f) do
 begin
 read(f,s);
 If (s.Materija = 'Деревянный')   and (s.DlinaR = 3)   then inc(x);
 If (s.Materija = 'Металический') and (s.DlinaR > 5) then inc(y);
 end;
 If x>0 then writeln('Кол-во деревянных кубиков с длиной ребра 3см - ',x) else writeln('Нету деревянных кубиков с длиной ребра 3см');
 If y>0 then writeln('Кол-во металических кубиков с длиной более 5см - ',y) else writeln('Нету металических кубиков с длиной более 5см');
 close(f);
 end.
Внимание: Файлы хранить в одной папке !
1
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 8
29.12.2011, 01:01  [ТС] 5
спасибо огромное дружище. буду разбираться)
0
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 22
29.12.2011, 01:17 6
О парни, а помогите мне тоже решить 507 Ж)) Если не сложно.
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
program NewBase;
uses crt;
type 
pupil=record
name:string[10];
surname:string[10];
Classnumber:integer;
letter:string[1];
kol:integer;
end;
var
base:file of pupil;
y4:pupil;
FileName:string;
i,n:integer;
Begin
writeln('Введите название базы учеников');
readln(FileName);
Assign(base,FileName);
Rewrite(base);
writeln('Введите кол-во учеников в базе данных');
readln(n);
Writeln('Приступим к вводу даных об учениках');
with y4 do
kol:=n;
 
for i:=1 to n do 
begin
with y4 do
begin
 
 write('Фамилия ученика: ');
 readln(surname);
 write('Имя: ');
 readln(name);
 write('Номер класса: ');
 readln(classnumber);
 write('буква класса: ');
 readln(letter);
 end;
 write(base,y4);
 end;
 close(base);
 writeln('Конец ввода даных. Нажмите ENTER');
 readkey;
 end.
Это база) Но вот как само задание решить так и не смог(

Добавлено через 1 минуту
И если не сложно 513 А
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
program kubi;
uses crt;
type 
kub=record
color:string[10];
material:string[10];
razmer:integer;
 
end;
var
base:file of kub;
a:kub;
FileName:string;
i,n:integer;
c:char;
Begin
writeln('Введите название базы Кубиков');
readln(FileName);
Assign(base,FileName);
Rewrite(base);
writeln('Введите кол-во кубиков вводимых в базу данных');
readln(n);
Writeln('Приступим к вводу даных о кубиках');
with a do
 
 
for i:=1 to n do 
begin
with a do
begin
 
 writeln('Введите цвет:');
 writeln('1=красный');
 writeln('2=Желтый');
 writeln('3=Зеленый');
 writeln('4=Синий');
 readln(c);
 case c of
 '1':color:='Красный';
 '2':color:='Желтый';
 '3':color:='Зеленый';
 '4':color:='Синий';
 end;
 writeln('Введите материал');
 writeln('1=Деревянный');
 writeln('2=Металлический');
 writeln('3=Картонный');
 
 readln(c);
 case c of
 '1':material:='Деревянный';
 '2':material:='Металлический';
 '3':material:='Картонный';
 
 end;
 
  write('Введите размер: ');
 readln(razmer);
 end;
 write(base,a);
 end;
 close(base);
 writeln('Конец ввода даных. Нажмите ENTER');
 readkey;
 end.
База с кубиками,
и
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
type 
kub=record
color:string[10];
material:string[10];
razmer:integer;
 
end;
var
g: file of kub;
a:kub;
ob:integer;
s,i:real;
 
 
begin
assign (g,'kub');
reset(g);
while eof(g)=false do begin
Read(g,a);
 
if a.color=a.color then begin
ob:=(a.razmer*a.razmer*a.razmer);
s:=(ob+ob);
s:=s/2;
i:=i+1;
end;
 
writeln('суммарный обьем кубиков данного цвета (',a.color,') = ',s,' и их кол-во= ',i);
end;
 
close(g);
end.
и Пара моих мыслей, которые додумать я так и не смог(
0
--\.founder./--
565 / 565 / 392
Регистрация: 20.10.2011
Сообщений: 867
29.12.2011, 01:24 7
simakmak, а файл G тоже типизированный или обычный текстовый файл ? Просто если типизированный , то Вы его не сможете потом прочесть с помощью обычного текстового редактора .
0
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 22
29.12.2011, 01:26 8
Цитата Сообщение от WebMax 2.0 Посмотреть сообщение
simakmak, а файл G тоже типизированный или обычный текстовый файл ? Просто если типизированный , то Вы его не сможете потом прочесть с помощью обычного текстового редактора .
Типизированный. Да нам и не нужно его читать в блокноте и тд. Нам главное научиться записывать в другой файл)
0
--\.founder./--
565 / 565 / 392
Регистрация: 20.10.2011
Сообщений: 867
29.12.2011, 02:06 9
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от simakmak Посмотреть сообщение
О парни, а помогите мне тоже решить 507 Ж)) Если не сложно.
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
 program NewBase;
 
 uses crt;
 
 type
      pupil=record
          name:string[10];
          surname:string[10];
          Classnumber:integer;
          letter:string[1];
          kol:integer;
      end;
      
 var
 base,g:file of pupil;
 y4:pupil;
 FileName:string;
 i,j,n:integer;
 
 Begin
 writeln('Введите название базы учеников');
 readln(FileName);
 Assign(base,FileName);
 assign(g,'svedenija.dat');
 reset(base);
 rewrite(g);
 For i:=9 to 10 do
    For j:=224 to 231 do
    begin
       While not eof(base) do
       begin
       read(base,y4);
       If (y4.Classnumber = i) and (y4.letter = chr(j)) then write(g,y4);
       end;
    seek(base,0);
    end;
 close(base);
 close(g);
 readkey;
 end.
Добавлено через 11 минут
А это для проверки:

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
program NewBase;
 
 uses crt;
 
 type
      pupil=record
          name:string[10];
          surname:string[10];
          Classnumber:integer;
          letter:string[1];
          kol:integer;
      end;
 
 var
 base,g:file of pupil;
 y4:pupil;
 FileName:string;
 i,j,n:integer;
 
 Begin
 assign(g,'svedenija.dat');
 reset(g);
 While not eof(g) do
 begin
 read(g,y4);
 writeln(y4.Classnumber,'    ',y4.letter);
 end;
 close(g);
 readkey;
 end.
3
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 22
29.12.2011, 09:10 10
Спасибо братишь, очень выручил)
0
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 22
06.01.2012, 19:14 11
Ребят выручайте еще раз) Помогите с 513 А , ни как не могу разобраться(( База на прошлой страничке.

Добавлено через 6 минут
если не трудно , решите задание 508 б , буду очень благодарен
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
06.01.2012, 23:13 12
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от simakmak Посмотреть сообщение
508 б
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
uses crt;
 
type ucheniki = record;
     name: string[10];
     fam:  string[10];
     kl:   integer;
     kll:  string[1];
     oz: array [1..20] of integer;
     end;
 
var u:array [1..100] of ucheniki;
    srsum: array [1..11] of real;
    i,j,k,n,m,sum,ku,r:integer;
    f,g: file of ucheniki;
    
begin
assign(f, 'C:\uch.dat');
assign(g, 'C:\luch.dat');
rewrite(f);
write('Сколько учеников? ');
readln(n);
write('Сколько отметок у одного ученика? ');
readln(m);
writeln('Внесите данные об учениках: ');
for i:=1 to n do
    with u[i] do
         begin
         write('Фамилия ',i,' учащегося: '); readln(fam);
         write('Имя: '); readln(name);
         write('Класс(цифра): '); readln(kl);
         write('Класс(буква): '); readln(kll);
         writeln('Oценки, всего ',m,': ');
         for j:=1 to m do readln(oz[j]);
         write(f,u[i]);
         end;
reset(f);
rewrite(g);
while not eof(f) do
      read(f,u[i]);
for k:=1 to 11 do
    begin
    sum:=0;
    for i:=1 to n do
        if u[i].kl=k then
           for j:=1 to m do
               begin
               inc(sum,u[i].oz[j]);
               inc(ku);
               end;
    if ku>0 then srsum[k]:=sum/ku else srsum[k]:=0;
    end;
writeln('Лучшие учащиеся: ');
for i:=1 to n do
    begin
    sum:=0; k:=0;
    with u[i] do
         begin
         for j:=1 to m do
             begin
             inc(sum,u[i].oz[j]);
             if u[i].oz[j]<4 then inc(k);
             end;
         if (k=0) and (sum>=srsum[u[i].kl]) then
            begin
            writeln(u[i].fam:11,u[i].name:11,u[i].kl:3,u[i].kll);
            write(g,u[i]);
            end;
         end;
    end;
writeln('Данные о лучших учениках занесены в файл 2 ');
writeln('Нажмите 1, чтобы просмотреть содержимое файла 2 (сокращенно)');
readln(r);
if r=1 then
   begin
   reset(g);
   while not eof(g) do
         begin
         read(g,u[i]);
         writeln(u[i].fam:11,u[i].name:11,u[i].kl:3,u[i].kll);
         end;
   end;
close (f);
close (g);
end.
1
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 22
08.01.2012, 12:04 13
А с 513 а кто нибудь сможет совладать ?)
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
08.01.2012, 13:55 14
Цитата Сообщение от simakmak Посмотреть сообщение
513 а
первая часть, создание файла
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
 uses crt;
 
 Type Kubik = record
        DlinaR  : integer;
        Cvet    : string;
        Materija: string;
      end;
 
 var
 f:file of Kubik;
 s: Kubik;
 i,n,c:integer;
 
 begin
 assign(f,'C:\in.dat');
 rewrite(f);
 Write('Введите кол-во кубиков: '); readln(n);
 For i:=1 to n do
   begin
   write('Длина ребра ',i,'-го кубика: ');   readln(s.dlinaR);
   write('Цвет кубика: 1-красный, 2-желтый, 3-зеленый, 4-синий ');
   readln(c);
   case c of
   1: s.cvet:='красный';
   2: s.cvet:='желтый';
   3: s.cvet:='зеленый';
   4: s.cvet:='синий';
   end;
   write('Материал: 1-дерево, 2-металл, 3-картон ');
   readln(c);
   case c of
   1: s.Materija:='дерево';
   2: s.Materija:='металл';
   3: s.Materija:='картон';
   end;
   writeln;
   Write(f,s);
   end;
 close(f);
 end.
и собственно обработка
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
 uses crt;
 
 Type Kubik = record
        DlinaR  : integer;
        Cvet    : string;
        Materija: string;
      end;
 
 var
 f:file of Kubik;
 s: Kubik;
 n:integer;
 sobR,sobY,sobG,sobB:real;
 
 begin
 assign(f,'C:\in.dat');
 reset(f);
 sobR:=0; sobY:=0; sobG:=0; sobB:=0;
 while not eof(f) do
       begin
       read(f,s);
       if s.Cvet='красный' then sobR:=sobR+(s.DlinaR*s.DlinaR*s.DlinaR);
       if s.Cvet='желтый' then sobY:=sobY+(s.DlinaR*s.DlinaR*s.DlinaR);
       if s.Cvet='зеленый' then sobG:=sobG+(s.DlinaR*s.DlinaR*s.DlinaR);
       if s.Cvet='синий' then sobB:=sobB+(s.DlinaR*s.DlinaR*s.DlinaR);
       end;
 writeln('Общий объем красных кубиков =',sobR);
 writeln('Общий объем желтых кубиков =',sobY);
 writeln('Общий объем зеленых кубиков =',sobG);
 writeln('Общий объем синих кубиков =',sobB);
 close(f);
 end.
1
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 22
08.01.2012, 21:01 15
Снекс)
0
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 22
13.01.2012, 00:17 16
Цитата Сообщение от КонецСвета Посмотреть сообщение
var u:array [1..100] of ucheniki;
по поводу задание 508 б , препод сказал что это не подходит , так как если будет записан огромный объем памяти , прога не будет работать
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
13.01.2012, 01:10 17
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

ясно, это моя обычная проблема, меры я не знаю...

Добавлено через 48 минут
это программа для создания и заполнения файла
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
uses crt;
 
type ucheniki = record;
     name: string[10];
     fam:  string[10];
     kl:   integer;
     kll:  string[1];
     oz: array [1..20] of integer;
     end;
 
var u: ucheniki;
    srsum: array [1..11] of real;
    i,j,k,n,m,sum,ku,r:integer;
    f,g: file of ucheniki;
 
begin
assign(f, 'C:\uch.dat');
rewrite(f);
write('Сколько учеников? ');
readln(n);
write('Сколько отметок у одного ученика? ');
readln(m);
writeln('Внесите данные об учениках: ');
for i:=1 to n do
    with u do
         begin
         write('Фамилия ',i,' учащегося: '); readln(fam);
         write('Имя: '); readln(name);
         write('Класс(цифра): '); readln(kl);
         write('Класс(буква): '); readln(kll);
         writeln('Oценки, всего ',m,': ');
         for j:=1 to m do readln(oz[j]);
         write(f,u);
         end;
close (f);
end.
это программа для анализа
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
uses crt;
 
type ucheniki = record;
     name: string[10];
     fam:  string[10];
     kl:   integer;
     kll:  string[1];
     oz: array [1..20] of integer;
     end;
 
var u: ucheniki;
    maxsum: array [1..11] of integer;
    i,j,k,n,m,sum,ku,r:integer;
    f,g: file of ucheniki;
 
begin
assign(f, 'C:\uch.dat');
assign(g, 'C:\luch.dat');
write('Сколько отметок у одного ученика? ');
for i:=1 to 11 do
     maxsum[i]:=0;
readln(m);
reset(f);
rewrite(g);
i:=0;
while not eof(f) do
      begin
      inc(i);
      read(f,u);
      sum:=0;
      with u do
           for j:=1 to m do
               inc(sum,oz[j]);
      if sum>=maxsum[u.kl] then maxsum[u.kl]:=sum;
 
      end;
writeln('Лучшие учащиеся: ');
i:=0;
reset(f);
while not eof(f) do
      begin
      inc(i);
      read(f,u);
      sum:=0; k:=0;
      with u do
      begin
      for j:=1 to m do
          begin
          inc(sum,oz[j]);
          if oz[j]>3 then inc(k);
          end;
      if (sum>=maxsum[u.kl]) and (k=m) then
         begin
            writeln(fam:11,name:11,kl:3,kll);
            write(g,u);
            end;
      end;
      end;
writeln('Данные о лучших учениках занесены в файл 2 ');
writeln('Нажмите 1, чтобы просмотреть содержимое файла 2 (сокращенно)');
readln(r);
if r=1 then
   begin
   reset(g);
   while not eof(g) do
         with u do
         begin
         read(g,u);
         writeln(fam:11,name:11,kl:3,kll);
         end;
   end;
close (f);
close (g);
end.
0
13.01.2012, 01:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2012, 01:10
Помогаю со студенческими работами здесь

Дан файл f, содержащий сведения о кубиках
Дан файл f, содержащий сведения о кубиках: размер каждого кубика (длина ребра в сантиметрах), его...

Дан файл , содержащий сведения о кубиках:
Дан файл , содержащий сведения о кубиках: размер каждого кубика (длина ребра в сантиметрах), его...

Записи. Дан файл, содержащий сведения о кубиках
Дан файл, содержащий сведения о кубиках: размер каждого кубика (длина ребра в сантиметрах), его...

Дан файл F, содержащий сведения о кубиках: размер (длина его ребра), его цвет и материал. Найти количество куб
Дан файл F, содержащий сведения о кубиках: размер (длина его ребра), его цвет и материал. Найти...

Даны сведения о кубиках
Даны сведения о кубиках: размер каждого кубика (длина ребра в сантиметрах), его цвет (красный,...

Создать файл f, содержащий сведения о книгах. Сведения о каждой из книг - это фамилия автора, название книги и год издан
Создать файл f, содержащий сведения о книгах. Сведения о каждой из книг - это фамилия автора,...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru