Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
6 / 5 / 4
Регистрация: 06.03.2012
Сообщений: 61

Подсчитать количество студентов и средний бал в каждой группе по каждому экзамену

06.03.2012, 22:57. Показов 6998. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подсчитать количество студентов и средний бал в каждой группе по каждому экзамену,
в базе данных созданной с помощью строк в паскале!!!

Добавлено через 54 минуты
Помогите пожалуйста это очень срочно!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2012, 22:57
Ответы с готовыми решениями:

Рассчитать средний бал каждого ученика и средний бал по каждому предмету
Подскажите как решать плз! 1)Написать программу создающую на диске файл следующей структуры: Фамилия 1 (например Сидоров) оценки...

Выбрать и вывести фамилии неуспевающих студентов и по каким предметам, подсчитать средний бал оценок каждого студента
По итогам аттестации по нескольким предметам выбрать и вывести фамилии неуспевающих студентов и по каким предметам, подсчитать средний бал...

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

8
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
06.03.2012, 23:56
Santi111, это все условие? уточните: использовать массивы строк и чисел? типизированные или текстовые файлы? записи?
0
6 / 5 / 4
Регистрация: 06.03.2012
Сообщений: 61
07.03.2012, 00:03  [ТС]
все задание выглядит так:

Вариант 6.
База данных (Студенты).]
Создать программу, создающую базу данных и выполняющую 4 задания. Каждую базу данных отсортировать по двум указанным полям. В каждой базе данных должно быть минимум 10 записей.
Поля: «Номер по порядку»; «Номер зачетки»; «Фамилия»; «Имя»; «Отчество»; «Родной город»; «Пол»*; «Номер группы»****; четыре поля, в которые внесены экзаменационные оценки**; «Год рождения»; «Величина стипендии»; «Проживание в общежитии»***.

Задание 1. Вывести фамилии, имена, группу и родной город студентов проживающих в общежитии.
Задание 2. Вывести ФИО и номер группы студентов, у которых оценки по всем экзаменам выше двух балов.
Задание 3. Подсчитать количество студентов и средний бал в каждой группе по каждому экзамену.
Задание 4. Вывести на экран сумму балов каждого студента.
Базу данных отсортировать по номеру зачетки и году рождения.
Каждую базу данных отсортировать по двум указанным полям. В каждой базе данных должно быть минимум 10 записей.
Примечание. В полях базы данных должны быть выполнены такие условия:
* – Поле задается списком возможных данных.
** – Ввести ограничение на значения вводимых данных.
*** – Поле логического типа.
**** – Возможные значения ввести в отдельный массив.

но нужно только задание 3 ,и сортировку по возможности!!!
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
07.03.2012, 00:50
навскидку вот Задание 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
  uses crt;
 const  line='-----------------------------------------------------------------------------';
        sha1='|  Номер  |    Фамилия, Имя, Отчество      |   Баллы на экзаменах  |   Год  |';
        sha2='| зачетки |                                |  1  |  2  |  3  |  4  |рождения|';
        gruppa:array [1..4] of string=('UFO','FFSN','SIP','DSW');
        nmin=10; nmax=20;
 
 type student=record
      noz:  string[10];
      fio:  string[30];
      gru:  byte;
      year: integer;
      oc: array [1..4] of byte;
      end;
 
 var a: array [1..nmax] of student;
     kgr: array [1..4] of integer;
     srb: array [1..4,1..4] of real;
     aa: student;
     i,j,k,r,n: integer;
     sr: real;
 
begin
for i:=1 to 4 do
    for j:=1 to 4 do
        srb[i,j]:=0;
repeat
write('Количество студентов, не менее ',nmin,', не более ',nmax,', n=');
readln(n);
until n in [nmin..nmax];
writeln('Внесите данные о студентах');
for i:=1 to n do
    with a[i] do
    begin
    write('Номер зачетки: ');readln(noz);
    write('ФИО: ');readln(fio);
    writeln('Укажите номер, под которым указана группа студента: ');
    for j:=1 to 4 do
        write(j,'-',gruppa[j],' ');
    writeln;
    repeat
    readln(gru);
    until gru in [1..4];
    inc(kgr[gru]);
    writeln('Год рождения: ');
    repeat
    readln(year);
    until year in [1950..2012];
    writeln('Введите 4 отметки за экзамены в строку: ');
    for j:=1 to 4 do
        begin
        read(oc[j]);
        srb[gru,j]:=srb[gru,j]+oc[j];
        end;
    end;
writeln('Количество студентов в группах');
for i:=1 to 4 do
    writeln(gruppa[i],' - ',kgr[i],' человек(а)');
writeln('Средние баллы по группам и по экзаменам');
write(' ':8);
for j:=1 to 4 do
    write(j,' экзамен');
for i:=1 to 4 do
    begin
    write(gruppa[i]:5);
    for j:=1 to 4 do
        begin
        srb[i,j]:=srb[i,j]/kgr[i];
        write(srb[i,j]:10:1);
        end;
    writeln;
    end;
writeln('Сортировка по зачетке');
j:=0;
while j<=n do
      begin
      for i:=1 to n-1 do
         if a[i].noz[1]>a[i+1].noz[1] then
            begin
            aa:=a[i];
            a[i]:=a[i+1];
            a[i+1]:=aa;
            end;
        inc(j);
        end;
writeln(line);
writeln(sha1);
writeln(sha2);
writeln(line);
for i:=1 to n do
    with a[i] do
         begin
         writeln(fio:30);    {ну и так далее по списку...}
         end;
writeln('Сортировка по году рождения');
j:=0;
while j<=n do
      begin
      for i:=1 to n-1 do
         if a[i].year>a[i+1].year then
            begin
            aa:=a[i];
            a[i]:=a[i+1];
            a[i+1]:=aa;
            end;
        inc(j);
        end;
writeln(line);
writeln(sha1);
writeln(sha2);
writeln(line);
for i:=1 to n do
    with a[i] do
         begin
         writeln(fio:30);    {ну и так далее по списку...}
         end;
end.
вывод данных в таблицу сам сделаешь? я все...
1
6 / 5 / 4
Регистрация: 06.03.2012
Сообщений: 61
07.03.2012, 01:16  [ТС]
Спасибо большое а то все сделал а это никак!!!
0
6 / 5 / 4
Регистрация: 06.03.2012
Сообщений: 61
13.03.2012, 22:41  [ТС]
Цитата Сообщение от КонецСвета Посмотреть сообщение
inc(kgr[gru]);
а что такое kgr
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
13.03.2012, 22:53
kgr - счетчик для групп, а точнее, для количества студентов в каждой из них. это массив, элементы которого я буду увеличивать на 1, как только встречу студента из соответствующей группы
с помощью процедуры inc(kgr[gru]) я и провожу такое увеличение.
например, при вводе данных пользователь выбрал группу UFO
эта группа у меня проходит под индексом 1, следовательно, я увеличиваю на 1 первый элемент массива kgr, то есть количество студентов в группе под названием UFO
1
6 / 5 / 4
Регистрация: 06.03.2012
Сообщений: 61
13.03.2012, 22:59  [ТС]
А не можешь проверить программу а то он выдает ошибку не пойму в чем дело!
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
13.03.2012, 23:07
как-то так, только помни, что вывод в таблицу я не оформляю... это самое простое, справишься?

Не по теме:

(а так у меня со сна накладка вышла - ну никак год рождения в тип byte лезть не хотел =))


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
  uses crt;
 const  line='-----------------------------------------------------------------------------';
        sha1='|  Номер  |    Фамилия, Имя, Отчество      |   Баллы на экзаменах  |   Год  |';
        sha2='| зачетки |                                |  1  |  2  |  3  |  4  |рождения|';
        gruppa:array [1..4] of string=('UFO','FFSN','SIP','DSW');
        nmin=3; nmax=20;
 
 type student=record
      noz:  string[10];
      fio:  string[30];
      gru:  byte;
      year: integer;
      oc: array [1..4] of byte;
      end;
 
 var a: array [1..nmax] of student;
     kgr: array [1..4] of integer;
     srb: array [1..4,1..4] of real;
     aa: student;
     i,j,k,r,n: integer;
     sr: real;
 
begin
for i:=1 to 4 do
    for j:=1 to 4 do
        srb[i,j]:=0;
repeat
write('Количество студентов, не менее ',nmin,', не более ',nmax,', n=');
readln(n);
until n in [nmin..nmax];
writeln('Внесите данные о студентах');
for i:=1 to n do
    with a[i] do
    begin
    write('Номер зачетки: ');readln(noz);
    write('ФИО: ');readln(fio);
    writeln('Укажите номер, под которым указана группа студента: ');
    for j:=1 to 4 do
        write(j,'-',gruppa[j],' ');
    writeln;
    repeat
    readln(gru);
    until gru in [1..4];
    inc(kgr[gru]);
    writeln('Год рождения: ');
    repeat
    readln(year);
    until (year>1950) and (year<2012);
    writeln('Введите 4 отметки за экзамены в строку: ');
    for j:=1 to 4 do
        begin
        read(oc[j]);
        srb[gru,j]:=srb[gru,j]+oc[j];
        end;
    end;
writeln('Количество студентов в группах');
for i:=1 to 4 do
    writeln(gruppa[i],' - ',kgr[i],' человек(а)');
writeln('Средние баллы по группам и по экзаменам');
write(' ':8);
for j:=1 to 4 do
    write(j,' экзамен ');
writeln;
for i:=1 to 4 do
    begin
    write(gruppa[i]:5);
    for j:=1 to 4 do
        begin
        if kgr[i]>0 then srb[i,j]:=srb[i,j]/kgr[i];
        write(srb[i,j]:10:1);
        end;
    writeln;
    end;
writeln('Сортировка по зачетке');
j:=0;
while j<=n do
      begin
      for i:=1 to n-1 do
         if a[i].noz[1]>a[i+1].noz[1] then
            begin
            aa:=a[i];
            a[i]:=a[i+1];
            a[i+1]:=aa;
            end;
        inc(j);
        end;
writeln(line);
writeln(sha1);
writeln(sha2);
writeln(line);
for i:=1 to n do
    with a[i] do
         begin
         writeln(fio:30);    {ну и так далее по списку...}
         end;
writeln('Сортировка по году рождения');
j:=0;
while j<=n do
      begin
      for i:=1 to n-1 do
         if a[i].year>a[i+1].year then
            begin
            aa:=a[i];
            a[i]:=a[i+1];
            a[i+1]:=aa;
            end;
        inc(j);
        end;
writeln(line);
writeln(sha1);
writeln(sha2);
writeln(line);
for i:=1 to n do
    with a[i] do
         begin
         writeln(fio:30);    {ну и так далее по списку...}
         end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2012, 23:07
Помогаю со студенческими работами здесь

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

Найти студентов 2-го курса, которые имеют средний бал 4
Создать программу, которая создает базу данных согласно варианту. Группа: N группы, N курса, фамилия, имя, отчество, дата рождения,...

Вывести студентов которые имеют средний балл, который больше 85
Подскажите пожалуйста почему в данном программном коде в выделенной области(последний цикл) не работает массив. там нужно вывести...

Подсчитать средний бал за 4 экзамена
Помогите ИСПРАВИТЬ программу. надо посчитать средний бал за 4 экзамена. (с файлом) Program P10; Uses Crt; Const n=2; Type ...

Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому экзамену
Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru