![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Nill |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите, кто может решить задачку:
Создайте файл, содержащий записи о студентах из 3 групп (не менее 15). Код type student = record name: string[10]; group: integer; marks: array[1..3] of 2..5; end; myfile = file of student; Выведите на экран номера групп, в которых самый высокий средний балл. Сообщение отредактировано: volvo - 22.01.2005 11:42 |
![]() ![]() |
Алексей |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 3 Репутация: ![]() ![]() ![]() |
Могу прислать тебе на мыло эту задачу, но на Delphi. если нужно, то напиши мыло
![]() |
BlackShadow |
![]()
Сообщение
#3
|
Гость ![]() |
Код Type Student = record Name: String[10]; Group: Integer; Marks: Array[1..3] of 2..5; End; MyFile=File Of Student; Var Count:Array[1..3] Of Integer; Data:Array[1..3,1..20] Of Student; i,j,k:Integer; f:MyFile; Avg:Array[1..3] Of Double; Begin For i:=1 To 3 Do Begin WriteLn('Enter Count Of Students From Group #',i,' (0..20): '); ReadLn(Count[i]); For j:=1 To Count[i] Do Begin Write( 'Enter Name Of Student #',j,': '); ReadLn(Data[i,j].Name); Data[i,j].Group:=i; For k:=1 To 3 Do Begin Write(' Enter Mark #',k,' (2..5): '); ReadLn(Data[i,j].Marks[k]) End End End; Assign(f,'Stud.Txt'); ReWrite(f); For i:=1 To 3 Do Begin WriteLn(f,' Group #',i); For j:=1 To Count[i] Do Begin Write(f,Data[i,j].Name,': '); For k:=1 To 3 Do Write(f,Data[i,j].Marks[k],' '); WriteLn(f) End End; Close(f); For i:=1 To 3 Do Begin Avg[i]:=0; For j:=1 To Count[i] Do For k:=1 To 3 Do Avg[i]:=Avg[i]+Data[i,j].Marks[k]; If Count[i]<>0 Then Avg[i]:=Avg[i]/Count[i] End; k:=1; If Avg[2]>Avg[1] Then k:=2; If (Avg[3]>Avg[2]) And (Avg[3]>Avg[1]) Then k:=3; WriteLn('Best Average Mark Is ',Avg[k],' In Following Group(s):'); For i:=1 To 3 Do If Avg[i]=Avg[k] Then WriteLn(i) End. Примерно так... |
Nill |
![]()
Сообщение
#4
|
Гость ![]() |
А она че-то не работает!
|
BlackShadow |
![]()
Сообщение
#5
|
Гость ![]() |
Теперь работает:
Код Type Student = record Name: String[10]; Group: Integer; Marks: Array[1..3] of 2..5; End; MyFile=File Of Student; Var Count:Array[1..3] Of Integer; Data:Array[1..3,1..20] Of Student; i,j,k:Integer; f:MyFile; Avg:Array[1..3] Of Double; Begin For i:=1 To 3 Do Begin WriteLn('Enter Count Of Students From Group #',i,' (0..20): '); ReadLn(Count[i]); For j:=1 To Count[i] Do Begin Write( 'Enter Name Of Student #',j,': '); ReadLn(Data[i,j].Name); Data[i,j].Group:=i; For k:=1 To 3 Do Begin Write(' Enter Mark #',k,' (2..5): '); ReadLn(Data[i,j].Marks[k]) End End End; Assign(f,'Stud.Txt'); ReWrite(f); For i:=1 To 3 Do For j:=1 To Count[i] Do Write(f,Data[i,j]); Close(f); For i:=1 To 3 Do Begin Avg[i]:=0; For j:=1 To Count[i] Do For k:=1 To 3 Do Avg[i]:=Avg[i]+Data[i,j].Marks[k]; If Count[i]<>0 Then Avg[i]:=Avg[i]/Count[i] End; k:=1; If Avg[2]>Avg[1] Then k:=2; If (Avg[3]>Avg[2]) And (Avg[3]>Avg[1]) Then k:=3; WriteLn('Best Average Mark Is ',Avg[k],' In Following Group(s):'); For i:=1 To 3 Do If Avg[i]=Avg[k] Then WriteLn(i) End. |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 17:03 |