Реализация кода на паскале: База данных студентов - Pascal

Узнай цену своей работы

Формулировка задачи:

#include <iostream>
#include <string>
 
using namespace std;
 
void create_matr(string **, int, int);
bool search_с_stud(string **, int &, int, string);
bool search_g_stud (string **, int, int, string);
 
int main()
{
    setlocale(LC_ALL,"Russian");
    const int st=25;
    cout << "Введите количество групп: ";
    int gr;
    int i;
    cin >> gr;
    //формирование матрицы для одного курса из введенного количество групп
    string **course_1=new string *[gr];
    for (i=0; i<gr; i++)
        course_1[i]=new string [st];
    create_matr(course_1, gr, st);
    string name;
    cout << "Введите фамилию студента: ";
    cin >> name;
    //проверка, есть ли студент на данном курсе
    if (!search_с_stud(course_1, gr, st, name)) cout << "Нет такого студента";
    else cout << "Студент " << name << " из " << gr << " группы\n";
    system("pause > NULL");
    return 0;
}
 
// формирование n групп заданного курса. передаем матрицу-курс, количество групп и студентов
void create_matr(string **s, int n, int m)
{
    for (int i=0; i<n; i++)
        {
            cout << "Введите " << m << " студентов из " << i+1 << " группы:\n";
            for (int j=0; j<m; j++)
                cin >> s[i][j];
        }
}
// поиск студента на курсе. передаем номер группы, кол-во студентов, имя искомого
bool search_с_stud(string **s, int &n, int m, string name)
{
    int i=0,j=0;
    bool found=false;
    while (!found && i<n)
        {
            if (search_g_stud (s, i, m, name)) found=true;
            else i++;
        }
    n=++i;
    if (found) return true;
    else return false;
}
// поиск студента в заданной группе. передаем группу, кол-во студентов, имя искомого
bool search_g_stud (string **s, int i, int m, string name)
{
    int j=0;
    bool found=false;
    while (!found && j<m)
        {
            if (s[i][j]==name) found=true;
            else j++;
        }
    if (found) return true;
    else return false;
}
комментировать и исправлять сей код не обязательно (по желанию). Хотелось бы, чтобы вы помогли и реализовали его на паскале. каком, не особо важно.

Решение задачи: «Реализация кода на паскале: База данных студентов»

textual
Листинг программы
Begin
    TempBool := false;
    For i := 1 to m do begin
        For j := 1 to n do begin
            For z := 1 to x do begin
                If temp = a[i,j].lastname[z] then
                    begin
                        Writeln('Курс #',i,' Группа #',j);
                        TempBool := true;
                    end;
            end;
        End;
    End;
    If not TempBool then 
        Writeln('Такого студента нет');
End;

Объяснение кода листинга программы

  1. В начале кода объявляется переменная TempBool со значением false. Она будет использоваться для контроля выхода из цикла.
  2. Затем идет цикл For, который выполняется m раз. Каждый раз в цикле создается внутренний цикл For, который выполняется n раз.
  3. Внутри внутреннего цикла For создается еще один внутренний цикл For, который выполняется x раз.
  4. В каждом внутреннем цикле For происходит сравнение значения переменной temp с последним именем в списке a[i,j].lastname[z]. Если они совпадают, то выводится строка 'Курс #', i, ' Группа #', j, и переменная TempBool устанавливается в значение true. Это означает, что студент найден.
  5. После завершения всех внутренних циклов, если переменная TempBool все еще имеет значение false, выводится строка 'Такого студента нет'.
  6. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.417 из 5
Похожие ответы