Реализация кода на паскале: База данных студентов - 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;
Объяснение кода листинга программы
- В начале кода объявляется переменная TempBool со значением false. Она будет использоваться для контроля выхода из цикла.
- Затем идет цикл For, который выполняется m раз. Каждый раз в цикле создается внутренний цикл For, который выполняется n раз.
- Внутри внутреннего цикла For создается еще один внутренний цикл For, который выполняется x раз.
- В каждом внутреннем цикле For происходит сравнение значения переменной temp с последним именем в списке a[i,j].lastname[z]. Если они совпадают, то выводится строка 'Курс #', i, ' Группа #', j, и переменная TempBool устанавливается в значение true. Это означает, что студент найден.
- После завершения всех внутренних циклов, если переменная TempBool все еще имеет значение false, выводится строка 'Такого студента нет'.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д