
Помогите пожалуйста!Нужно составить программу на языке паскаль для решения такой задачи : поиск
двух учащихся школы,у которых совпадает имя?

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

Вы не указали как хранятся данные о студентах и как осуществляется ввод. Попробуйте так, хотя я уже давно в Паскале не писала.
program pr1;
procedure CreateMass(var str:mass; n:integer);
var i:integer;
begin
for i:=1 to n do begin
write('Введите имя учащегося: ');
readln(str[i])
end
end;
procedure SearchN (str:mass; n:integer);
var i, j, s1, s2:integer;
b:boolean;
begin
b:=false;
j:=1;
while (j <= (n-1)) and (not b) do
begin
for i:=j+1 to n do
begin
if str[j]=str[i] then
begin
b:=true;
s1:=i;
s2:=j
end
end;
j:=j+1
end;
if (not b) then writeln('Нет двух студентов с одинаковыми именами.') else
writeln('Студенты с одинаковыми именами - ',str[s1], ' находятся в массиве под номерами ', s1, ' и ', s2, '.')
end;
type mass = array [1..n] of string;
const n = 10;
var str:mass;
begin
CreateMass(str, n);
SearchN(str, n)
end.



Задача: Поиск двух учащихся школы с одинаковыми именами
Для решения задачи поиска двух учащихся школы с одинаковыми именами на языке Паскаль, можно использовать следующую программу:
```pascal program SearchStudents;
type Student = record Name: string; Grade: integer; end;
var Students: array[1..100] of Student; NumStudents, i, j: integer;
begin { Ввод данных } writeln('Введите количество учащихся:'); readln(NumStudents);
writeln('Введите данные об учащихся:'); for i := 1 to NumStudents do begin writeln('Учащийся ', i); write('Имя: '); readln(Students[i].Name); write('Класс: '); readln(Students[i].Grade); end;
{ Поиск учащихся с одинаковыми именами } writeln('Учащиеся с одинаковыми именами:'); for i := 1 to NumStudents - 1 do begin for j := i + 1 to NumStudents do begin if Students[i].Name = Students[j].Name then begin writeln('Учащийся ', i, ' и учащийся ', j); end; end; end;
readln; end. ```
Программа начинается с объявления типа `Student`, который представляет данные об учащемся, включая имя и класс. Затем объявляются переменные, включая массив `Students` для хранения данных об учащихся, переменные `NumStudents`, `i` и `j` для управления циклами.
Далее следует блок кода для ввода данных об учащихся с клавиатуры. Пользователю предлагается ввести количество учащихся, а затем вводится имя и класс каждого учащегося.
После ввода данных следует блок кода для поиска учащихся с одинаковыми именами. Вложенные циклы `for` используются для сравнения каждого учащегося с каждым другим учащимся. Если имена совпадают, то выводится информация о найденной паре учащихся.
Наконец, программа ожидает ввода пользователя, чтобы остановиться перед завершением.
Примечание: Представленный код является примером и может потребоваться доработка в зависимости от конкретных требований задачи и синтаксиса языка Паскаль, который может варьироваться в различных версиях и компиляторах.
Надеюсь, это поможет вам решить задачу! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili