Вопрос задан 04.09.2020 в 12:23. Предмет Информатика. Спрашивает Стрілець Віталій.

Составить программу для вывода данных о n студентов и m оценок, после занесения данных удалить из

списка студентов в которых ограничения и вывести на экран студентов оставшиеся... PascalABC (динамическая память).
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа на PascalABC для вывода данных о студентах и оценках

Для решения данной задачи на языке PascalABC с использованием динамической памяти можно создать следующую программу:

```pascal program StudentGrades;

type Student = record Name: string; Grade: integer; end;

var Students: array of Student; n, m, i, j: integer;

begin // Ввод количества студентов (n) и оценок (m) write('Введите количество студентов: '); readln(n); write('Введите количество оценок: '); readln(m);

// Выделение памяти для хранения данных о студентах SetLength(Students, n);

// Ввод данных о студентах и их оценках for i := 0 to n - 1 do begin writeln('Введите данные о студенте ', i + 1); write('Имя: '); readln(Students[i].Name); write('Оценка: '); readln(Students[i].Grade); end;

// Вывод данных о студентах и их оценках writeln('Данные о студентах и их оценках:'); for i := 0 to n - 1 do begin writeln('Студент ', i + 1); writeln('Имя: ', Students[i].Name); writeln('Оценка: ', Students[i].Grade); end;

// Удаление студентов, у которых оценка меньше m j := 0; for i := 0 to n - 1 do begin if Students[i].Grade >= m then begin Students[j] := Students[i]; j := j + 1; end; end; SetLength(Students, j);

// Вывод данных о студентах, оставшихся после удаления writeln('Студенты, оставшиеся после удаления:'); for i := 0 to j - 1 do begin writeln('Студент ', i + 1); writeln('Имя: ', Students[i].Name); writeln('Оценка: ', Students[i].Grade); end;

end. ```

Программа начинается с ввода количества студентов (n) и оценок (m). Затем выделяется память для хранения данных о студентах с помощью динамической памяти (функция `SetLength`). Далее происходит ввод данных о студентах и их оценках с использованием цикла `for`. После ввода данных происходит вывод данных о студентах и их оценках.

Затем происходит удаление студентов, у которых оценка меньше m. Для этого используется вспомогательный индекс `j`, который указывает на текущую позицию в массиве `Students`. Если оценка студента больше или равна m, то студент копируется в новую позицию массива `Students` с помощью оператора присваивания (`:=`).

После удаления студентов происходит вывод данных о студентах, оставшихся после удаления.

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

Пример работы программы:

``` Введите количество студентов: 3 Введите количество оценок: 2

Введите данные о студенте 1 Имя: John Оценка: 4

Введите данные о студенте 2 Имя: Alice Оценка: 3

Введите данные о студенте 3 Имя: Bob Оценка: 5

Данные о студентах и их оценках: Студент 1 Имя: John Оценка: 4 Студент 2 Имя: Alice Оценка: 3 Студент 3 Имя: Bob Оценка: 5

Студенты, оставшиеся после удаления: Студент 1 Имя: John Оценка: 4 Студент 3 Имя: Bob Оценка: 5 ```

Примечание: Программа представлена на языке PascalABC, который является расширением языка Pascal. Если у вас установлен PascalABC, вы можете скопировать и вставить код программы в среду разработки PascalABC и запустить его.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос