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

Определить количество студентов, у которых средний балл превышает заданное пользователем значение

20.04.2016, 23:08. Показов 2301. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Указания. Исходные данные должны быть предварительно записаны в текстовый файл. Программа считывает данные, используя одну или несколько переменных типа record, и выводит их на экран. После этого пользователь вводит данные для запроса и получает ответ на него.

Составить программу, выводящую на экран студенческую ведомость (Ф. И. О.,оценки за три экзамена, средний балл).Определить количество студентов, у которых средний балл превышает заданное пользователем значение.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2016, 23:08
Ответы с готовыми решениями:

Текстовые файлы: определить средний балл студентов, фамилии которых начинаются на А
Даны сведения о сдаче студентами экзаменов (Фамилия,имя,отчество,оценка). Определить средний балл студентов,фамилии которых начинаются на А.

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

Для студентов заданной группы, имеющие средний балл, больший 4.5, вывести фамилию и средний балл
Для студентов заданной группы,имеющие средний балл,больший 4.5,вывести фамилию,имя,отчество и средний балл. ФИО|год...

2
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
21.04.2016, 18:37
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Программа записи в файл
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
program pr;
type
  list = record 
    surname: string[50];
    name: string[50];
    ot:string[50];
    mark1:integer;
    mark2:integer;
    mark3:integer;
    avg:double;
  end;
 
var
f:text;
  lis: array [1..100]  of list;
  i, n: integer;
begin
assign(f,'c:\lista.txt');
rewrite(f);
  writeln('Заполним список');
  writeln('Сколько занести в список');
  readln(n);
  for i := 1 to n do
  begin
    writeln('Введите фамилию');
    readln(lis[i].surname);
    writeln(f,lis[i].surname);
    writeln('Введите имя');
    readln(lis[i].name);
    writeln(f,lis[i].name);
    writeln('Введите отчество');
    readln(lis[i].ot);
    writeln(f,lis[i].ot);
   writeln('Введите оценку по математике');
    readln(lis[i].mark1);
    writeln(f,lis[i].mark1);
     writeln('Введите оценку по программированию');
    readln(lis[i].mark2);
    writeln(f,lis[i].mark2);
     writeln('Введите оценку по IT');
    readln(lis[i].mark3);
    writeln(f,lis[i].mark3);
    writeln('Введите средний бал');
    readln(lis[i].avg);
    writeln(f,lis[i].avg);
  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
75
76
77
78
79
80
81
program pr;
 
type
  list = record 
    surname: string[50];
    name: string[50];
    ot: string[50];
    mark1: integer;
    mark2: integer;
    mark3: integer;
    avg: double;
  end;
 
procedure show(var F: text);
var
  i, n: integer;
  lis: array  [1..100] of list;
begin
  assign(F, 'c:\lista.txt');
  reset(f);
  writeln('Список студентов"');
  while not eof(f) do
  begin
    inc(i);
    readln(f, lis[i].surname);
    readln(f, lis[i].name);
    readln(f, lis[i].ot);
    readln(f, lis[i].mark1);
    readln(f, lis[i].mark2);
    readln(f, lis[i].mark3);
    readln(f, lis[i].avg);
    writeln(lis[i].surname);
    writeln(lis[i].name);
    writeln(lis[i].ot);
    writeln(lis[i].mark1);
    writeln(lis[i].mark2);
    writeln(lis[i].mark3);
    writeln(lis[i].avg);
    writeln;
  end;
end;
 
procedure mor(var f: text; var v: integer);
var
  i, n, cout: integer;
  lis: array [1..100] of list;
begin
  assign(F, 'c:\lista.txt');
  reset(f);
  cout := 0;
  while not eof(f) do
  begin
    inc(i);
    readln(f, lis[i].surname);
    readln(f, lis[i].name);
    readln(f, lis[i].ot);
    readln(f, lis[i].mark1);
    readln(f, lis[i].mark2);
    readln(f, lis[i].mark3);
    readln(f, lis[i].avg);
    if lis[i].avg > v then
    begin
      cout := cout + 1;
    end;
  end;
  writeln;
  writeln('Количество студентов с балом выше срднего: ', cout);
  
end;
 
var
  x: integer;
  F: TEXT;
 
begin
  show(f);
  writeln('Введите средний бал');
  readln(x);
  mor(f, x);
  close(f);
end.
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
21.04.2016, 18:47
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Запись
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
{$MODE TP}
const
    m_max = 3;
type
    TMarks = Array[0..m_max - 1] Of Byte;
    TStudent = record
        name: String[150];
        marks: TMarks;
    end;
var
    stud: TStudent;
    i, j, n: Byte;
    f: Text;
begin
    Assign(f, 'f.txt'); ReWrite(f);
    repeat
        Write('How much students add? '); ReadLn(n);
    until (n > 0);
    for i := 0 to n - 1 do
    begin
        with stud do
        begin
            Write('Input name: '); ReadLn(name);
            for j := 0 to m_max - 1 do
            begin
                Write('Input ', j + 1, ' mark: '); ReadLn(marks[j]);
            end;
            WriteLn(f, name);
            for j := 0 to m_max - 1 do
                Write(f, ' ', marks[j]);
            WriteLn(f);
        end;
    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
{$MODE TP}
const
    m_max = 3;
type
    TMarks = Array[0..m_max - 1] Of Byte;
    TStudent = record
        name: String[150];
        marks: TMarks;
    end;
function GetAvr(const marks: TMarks): Single;
var
    Result: Single;
    j: 0..m_max;
begin
    Result := 0;
    for j := 0 to m_max - 1 do
        Result := Result + marks[j];
    GetAvr := Result / m_max;
end;
procedure PrintStudent(const s: TStudent);
var
    j: Byte;
begin
    with s do
    begin
        Write(name, #9);
        for j := 0 to m_max - 1 do
            Write(marks[j]:3);
        WriteLn(#9, '|', GetAvr(marks):0:2);
    end;
end;
procedure PrintList(var f: Text);
var
    s: TStudent;
    avr: Single;
    count, j: Byte;
begin
    Write('Input critical avr: '); ReadLn(avr); count := 0;
    WriteLn('--------------------------------------------------------------------------');
    ReSet(f);
    while (Not EoF(f)) do
    begin
        with s do
        begin
            ReadLn(f, name);
            for j := 0 to m_max - 1 do
                Read(f, marks[j]);
            ReadLn(f);
        end;
        PrintStudent(s);
        if (GetAvr(s.marks) > avr)
        then
            Inc(count);
    end;
    Close(f);
    WriteLn('--------------------------------------------------------------------------');
    Write('Count=', count);
end;
var
    f: Text;
begin
    Assign(f, 'f.txt'); PrintList(f);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2016, 18:47
Помогаю со студенческими работами здесь

Определить количество абитуриентов, средний балл которых выше среднего балла по институту
Помогите составить программу. Дана ведомость абитуриентов, сдавших вступительные экзамены в институт (ее можно дополнить): Ф.И.О. ...

Вычислить средний балл группы и вывести на экран список студентов имеющих средний балл выше среднего балла группы
Написал задачку, а она как то не робит(( Нуждаюсь в опытном совете.... Вот условие задачи: "Вычислить средний балл группы и...

Вычислить средний балл группы и распечатать список студентов, имеющих средний балл выше среднего балла группы
Здраствуйте ещё раз :) Скажу сразу честно толком не пробывал решать с Записями и в особенности вот эти задачи... если поможите буду очень...

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

Определить средний балл студентов, успешно сдавших сессию, используя двумерный массив
Помогите пожалуйста! Карма +100000. Задан двумерный числовой массив из 25 строк и 7 столбцов, в котором записаны оценки на сессии...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru