20.06.2015, 10:11 | #1 (permalink) |
Новичок
Регистрация: 20.06.2015
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите написать программу, Паскаль
uses crt; type student=record fam:string[50]; godr:integer; godp:integer; os:integer; pr:integer; matem:integer; angl:integer; end; var arr:array [1..100] of student; i,j:integer; k:integer; B:boolean; n:integer; m:integer; begin for i:=1 to n do begin Writeln('Введите фамилию'); readln(stud[i].fam); Writeln('Введите дату рождение'); Readln(stud[i].godr); Writeln('Введите год поступления в техникум'); Readln(stud[i].godp); Writeln('Введите оценку по os'); readln(stud[i].os); Writeln('Введите оценку по прогромированию'); Readln(stud[i].pr); Writeln('Введите оценку по Высшей математике'); Readln(stud[i].matem); Writeln('Введите оценку по Английскому'); readln(stud[i].angl); end; Writeln('Ввод закончен'); begin for i:=1 to n do begin B:=true; for j:=1 to m do if (stud[i].os[j]<>2) or (stud[i].pr[j]<>2) or (stud[i].matem[j]<>2) or (stud[i].angl[j]<>2) then b:=false; if b then writeln(stud[i].fam,stud[i].godr,stud[i].godp); end; end; end. задание Составить программу для вывода записи по N студентам: фамилия, год рождения, год поступления в техникум и оценки по 4 предметам (ОС, Языки программирования, Высшая математика, Английский язык) последней аттестации. Распечатать список студентов, которые не имеют ни одной оценки-2 |
20.06.2015, 10:11 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Аналогичные проблемы уже обсуждались ранее Помогите, пожалуйста, написать программу на языке Паскаль Помогите, пожалуйста, написать программу на языке Паскаль Помогите, нужно написать программу в Паскаль, а я ни бум-бум Помогите написать программу на С++ Помогите написать программу |
20.06.2015, 20:00 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А самому отладить - слабО?
Подсказываю. 1. Поскольку ни одной команды модуля CRT в программе не используется, так и незачем ставить "uses CRT;". Убрать. 2. Поля записи оценок по разным дисциплинам у Вас заданы, как обычные скаляры, а не массивы. Поэтому величину m и связанный с ней цикл по j в операции отбора - убрать. Ну или задайте массив оценок как поле записи. Что-нибудь одно выберете. 3. В начале программы необходимо по запросу ввести n - число студентов. 4. С учетом п.2, а также логики, вместо for j:=1 to m do if (stud[i].os[j]<>2) or (stud[i].pr[j]<>2) or (stud[i].matem[j]<>2) or (stud[i].angl[j]<>2) then b:=false; следует написать if (stud[i].os=2) or (stud[i].pr=2) or (stud[i].matem=2) or (stud[i].angl=2) then b:=false; 5. В строке вывода следует разделить информацию пробелами, а то всё слипнется и будет нечитабельно, т.е. вместо writeln(stud[i].fam,stud[i].godr,stud[i].godp); следует написать writeln(stud[i].fam,' ',stud[i].godr,' ',stud[i].godp); Дерзайте! |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|