Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 8

Записи

24.08.2009, 16:50. Показов 2912. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ никогда не умел решать с записями задачи, вот нужна помощь.
Три простых задачки
1) Даны оценки группы студентов на экзаменах по 4 предметам: алгебре, геометрии, философии информатике. Найти, по какому предмету получили наибольшее количество двоек.
2) Даны три простые дроби, описать их как запись. Найти сумму этих дробей и сократить.
3) Даны координаты двух точек в пространстве, описать их как записи. Найти расстояние между этими точками.

И ещё одна задача.
Построить типизированный файл данных, который состоит из записей с такими полями: фамилия автора книги, название книги, год издания. Вывести все названия книг которые изданы после 2000 года и ответить на вопрос, есть ли среди этих книг книги с названием "Информатика"

Народ очень надо. Некогда не умел записи оформлять, а тут нужно обязательно через записи.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.08.2009, 16:50
Ответы с готовыми решениями:

Добавление и удаление записи, поиск записи с максимальной зарплатой, сортировка по алфавиту
Помогите, пожалуйста!:help: Очень нужно сделать до 26!(а если не сложно, то еще и с комментариями :-Добавлено через 27 минут если вы...

Удаление записи из массива записи или файла
Доброго времени суток... Задача стоит такая. Есть массив записей, прочитали из файла или так создали, неважно... Каждая запись имеет...

Дан файл записей. Одно из полей записи ФИО. Вывести все записи в виде таблицы в алфавитном порядке ФИО
Я сделал ввод файла, а вот как сделать такой вывод не знаю. Помогите пожалуйста. Каждая запись содержит поля: • ФИО; • пол; ...

5
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.08.2009, 19:00
№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
56
uses crt;
type Tstud=record {тип запись с полями по условию}
           fio:string[20];
           alg:byte;
           gmt:byte;
           fls:byte;
           inf:byte;
           end;
const pr:array[1..4] of string[15]=
      ('алгебра','геометрия','философия','информатика');{массив названий предметов}
var a:array[1..30] of Tstud; {массив записей}
    b:array[1..4] of byte;{массив количеств каждой оценки}
    n,i,max,imax:byte;
begin
clrscr;
repeat
write('Количество студентов, не более 30 n=');
readln(n);
until n in [1..30];
writeln('Введите сведения о ',n,' студентах:');
for i:=1 to n do
 begin
  writeln(' Студент ',i);
  write(' Фамилия И.О.: ');readln(a[i].fio);
  repeat
  write(' Оценка по алгебре: ');readln(a[i].alg);
  until a[i].alg in [2..5];
  repeat
  write(' Оценка по геометрии: ');readln(a[i].gmt);
  until a[i].gmt in [2..5];
  repeat
  write(' Оценка по философии: ');readln(a[i].fls);
  until a[i].fls in [2..5];
  repeat
  write(' Оценка по информатике: ');readln(a[i].inf);
  until a[i].inf in [2..5];
 end;
for i:=1 to 4 do{обнулим массив}
b[i]:=0;
for i:=1 to n do{посчитаем оценки=2}
 begin
  if a[i].alg=2 then b[1]:=b[1]+1;
  if a[i].gmt=2 then b[2]:=b[2]+1;
  if a[i].fls=2 then b[3]:=b[3]+1;
  if a[i].inf=2 then b[4]:=b[4]+1;
 end;
max:=0;imax:=1;
for i:=1 to 4 do
if b[i]>max then
 begin
  max:=b[i];
  imax:=i;{номер предмета, где больше 2}
 end;
write('Больше всего двоек по предмету ',pr[imax]);
readln
end.
1
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 8
24.08.2009, 19:16  [ТС]
Puporev,
спасибо большое
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.08.2009, 20:05
№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
uses crt;
type
frac=record
     p:integer; {Числитель дроби}
     q:1..maxint {Знаменатель дроби}
     end;
function Nod(a,b:integer):integer;{нахождение НОД алгоритм Эвклида}
begin
while a <> b do
if a > b then
if a mod b <> 0 then a:=a mod b else a:=b
 else if b mod a <> 0 then b:=b mod a else b:=a;
Nod:=a
end;
procedure Sokr(var a:frac); {Сокращение дроби}
var m,n:integer;
begin
if a.p <> 0 then
   begin
    if a.p < 0 then m:=abs(a.p) else m:=a.p;
   {Совмещение типов, т.к. a.p - integer}
    n:=Nod(m,a.q);
    a.p:=a.p div n;
    a.q:=a.q div n
   end
end;
procedure Summa(a,b:frac; var c:frac); {Сумма дробей}
begin
{Знаменатель дроби}
c.q:=a.q * b.q;
{Числитель дроби}
c.p:=a.p * b.q + b.p * a.q;
Sokr(c)
end;
var d1,d2,d3,s1,s2:frac;
begin
clrscr;
writeln('Введите числитель и знаменатель первой дроби :');
readln(d1.p,d1.q);
writeln('Введите числитель и знаменатель второй дроби :');
readln(d2.p,d2.q);
writeln('Введите числитель и знаменатель третьей дроби :');
readln(d3.p,d3.q);
Summa(d1,d2,s1);
Summa(s1,d3,s2);
write(d1.p,'/',d1.q,'+',d2.p,'/',d2.q,'+',d3.p,'/',d3.q,'=',s2.p,'/',s2.q);
readln
end.
Добавлено через 8 минут
№3.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uses crt;
type Point=record
           x,y:real;
           end;
var a,b:Point;
    s:real;
begin
clrscr;
writeln('Введите координаты первой точки:');
readln(a.x,a.y);
writeln('Введите координаты второй точки:');
readln(b.x,b.y);
s:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
write('Расстояние между точками=',s:0:4);
readln
end.
1
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 8
24.08.2009, 20:14  [ТС]
Puporev,
огромнейшее спасибо, осталась одна задачка и всё.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.08.2009, 20:33
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
uses crt;
type Tstud=record {тип запись с полями по условию}
           fio:string[20];
           alg:byte;
           gmt:byte;
           fls:byte;
           inf:byte;
           end;
const pr:array[1..4] of string[15]=
      ('алгебра','геометрия','философия','информатика');{массив названий предметов}
var a:array[1..30] of Tstud; {массив записей}
    b:array[1..4] of byte;{массив количеств каждой оценки}
    n,i,max,imax:byte;
begin
clrscr;
repeat
write('Количество студентов, не более 30 n=');
readln(n);
until n in [1..30];
writeln('Введите сведения о ',n,' студентах:');
for i:=1 to n do
 begin
  writeln(' Студент ',i);
  write(' Фамилия И.О.: ');readln(a[i].fio);
  repeat
  write(' Оценка по алгебре: ');readln(a[i].alg);
  until a[i].alg in [2..5];
  repeat
  write(' Оценка по геометрии: ');readln(a[i].gmt);
  until a[i].gmt in [2..5];
  repeat
  write(' Оценка по философии: ');readln(a[i].fls);
  until a[i].fls in [2..5];
  repeat
  write(' Оценка по информатике: ');readln(a[i].inf);
  until a[i].inf in [2..5];
 end;
for i:=1 to 4 do{обнулим массив}
b[i]:=0;
for i:=1 to n do{посчитаем оценки=2}
 begin
  if a[i].alg=2 then b[1]:=b[1]+1;
  if a[i].gmt=2 then b[2]:=b[2]+1;
  if a[i].fls=2 then b[3]:=b[3]+1;
  if a[i].inf=2 then b[4]:=b[4]+1;
 end;
max:=0;imax:=1;
for i:=1 to 4 do
if b[i]>max then
 begin
  max:=b[i];
  imax:=i;{номер предмета, где больше 2}
 end;
write('Больше всего двоек по предмету ',pr[imax]);
readln
end.
2) Даны три простые дроби, описать их как запись. Найти сумму этих дробей и сократить.
3) Даны координаты двух точек в пространстве, описать их как записи. Найти расстояние между этими точками.
 
И ещё одна задача.
Построить типизированный файл данных, который состоит из записей с такими полями: фамилия автора книги, название книги, год издания. Вывести все названия книг которые изданы после 2000 года и ответить на вопрос, есть ли среди этих книг книги с названием "Информатика"
uses crt;
type knigi=record
           fam:string[20];
           naz:string[30];
           god:word;
           end;
var zp:knigi;{переменная для хранения записей}
    f:file of knigi;{типизированный файл записей}
    i,k:byte;
    c:char;{}
beginсимвол для окончания ввода
clrscr;
assign(f,'knigi');{создаем файл}
rewrite(f);{открываем для зхаписи}
writeln('Введите данные о книгах. Окончание ввода-Esc');
i:=0;
repeat
i:=i+1;
writeln('Книга ',i);
write(' Фамилия автора: ');readln(zp.fam);
write(' Название книги: ');readln(zp.naz);
write(' Год издания:');readln(zp.god);
write(f,zp);{заносим запись в файл}
c:=readkey;{ожидаем нажатия клавиши}
until c=#27;{если Esc-конец ввода}
clrscr;
reset(f);{открываем для чтения}
k:=0;i:=0;
writeln('Книги, изданные после 2000 года:');
while not eof(f) do{пока не конец файла}
 begin
  read(f,zp);{читаем записи}
  if zp.god>2000 then{если после 2000}
   begin
    k:=1;{фиксируем}
    writeln(zp.naz);{выводим название на экран}
   end;
  if zp.naz='Информатика' then i:=1;{фиксируем, если есть Информатика}
 end;
writeln;
if k=0 then writeln('Книг, изданных после 2000 года нет!');
if i=1 then write('Книга с названием "Информатика есть!"')
else write('Книги с названием "Информатика нет!"');
close(f);
readln
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2009, 20:33
Помогаю со студенческими работами здесь

Записи.Упорядочивание записи.
При решении списка задач который мне был выдан столкнулся с трудностью в последнем. Просьба по возможности решить хотя бы половину...

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

Напечатать те цифры, которые есть в записи первого и второго числа, но нет в записи третьего.
12. даны три натуральных числа. Напечатать те цифры, которые есть в записи первого и второго числа, но нет в записи третьего.

Посчитать количество нулей в двоичной записи записи числа
сосчитать количество нулей в двоичной записи записи i

Записи: Вывести на печать информацию об инструменте с самым большим сроком использования и выполнить корректировку этой записи
помогите Используя подпрограммы, создать внешний файл из 7 записей, прочитать созданный файл и, применяя режим прямого доступа...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru