Вопрос задан 05.08.2018 в 23:12. Предмет Информатика. Спрашивает Быков Виктор.

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

двух учащихся школы,у которых совпадает имя?
0 0
Перейти к ответам

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

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

Вы не указали как хранятся данные о студентах и как осуществляется ввод. Попробуйте так, хотя я уже давно в Паскале не писала.

 

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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Задача: Поиск двух учащихся школы с одинаковыми именами

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

```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` используются для сравнения каждого учащегося с каждым другим учащимся. Если имена совпадают, то выводится информация о найденной паре учащихся.

Наконец, программа ожидает ввода пользователя, чтобы остановиться перед завершением.

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

Надеюсь, это поможет вам решить задачу! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

0 0

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

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

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