![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Darkmaximus |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
![]() 1) Заданы два вектора X и Y и матрица А. Найти сумму двух векторов C и D где С есть произведение вектора X на матрицу А , а вектор D произведения вектора Y на матрицу А. Вычислить произведение вектора на матрицу оформить в виде подпрограммы. 2) Оргонизовать фаид , содержащий информацию об ученой группе. Для каждог учащегося указать фамилиююъ , имя , дату рождения , год поступления в ВУЗ , курс , группу , оценки за каждый год обучения. Список упорядочить по дате поступления в ВУЗ. <_< Сама вторая прога у меня есть а вот отсортировать не получается. Помогите если сможите. А если непонятно напишите новую. Код uses crt; type pupil=record name:string; surname:string; grup:string; school:string; kurs:string; class:byte; end; var school:array[1..3]{кч}of pupil; n: 1..3{кч}; b,c:byte; procedure sort; var w,x:integer; begin for i:=1 to n-1 do begin x:=i; for j:=i+1 to n do if a[x]>a[j] then x:=j; w:=a[x]; a[x]:=a[i]; a[i]:=w; end; end; procedure input_data; begin writeln('введите данные №',n,' :'); write('фамилия ?'); readln(school[n].name); write('дата рождения ?'); readln(school[n].surname); write('год поступления ?'); readln(school[n].school); write('оценка ?'); readln(school[n].class); write('курс ?'); readln(school[n].kurs); write('группа ?'); readln(school[n].grup); writeln; end; procedure write_data; begin with school[n] do begin writeln('оценка ',class,' фамилия ',name,' дата рожд ',surname,' год поступ ',school,' курс ',kurs,' группа ',grup); end; end; Не забывайте теги [ CODE] и [ /CODE] Сообщение отредактировано: volvo - 1.12.2004 21:52 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
|
Darkmaximus |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну вообщето уме со второй задачей не получается а первая у меня на Делфи что-то не компелируется наверно Делфи глючный.
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Darkmaximus
Вот принцип сортировки записей: Код Uses Crt; Type TStudent = Record name, surname: String; birthdate: String; year: Integer; Kurs: String; group: Byte; grade: Byte; End; TStudentFile = File Of TStudent; Const maxStudent = 10; Var TInfo: Array[1 .. maxStudent] Of TStudent; Procedure sort(n: Integer); Var i, j: Integer; T: TStudent; Begin For i := 1 To n Do For j := n DownTo i+1 Do If TInfo[Pred(j)].year > TInfo[j].year Then { < } Begin T := TInfo[Pred(j)]; TInfo[Pred(j)] := TInfo[j]; TInfo[j] := T End End; Procedure input_data(n: integer); Begin WriteLn('input data #', n,': '); With TInfo[n] do Begin Write('name > '); ReadLn(name); Write('surname > '); ReadLn(surname); Write('birth date > '); ReadLn(birthdate); Write('year > '); ReadLn(year); Write('course > '); ReadLn(kurs); Write('group > '); ReadLn(group); Write('grade > '); ReadLn(grade); End; WriteLn; End; Procedure write_data(n: Integer); Begin With TInfo[n] Do WriteLn('grade ', grade, ' name ', name, ' surname ', surname, ' birthdate ', birthdate, ' year ', year, ' kurs ', kurs, ' group ',group); End; Procedure write_file(Var f: TStudentFile; n: Integer); Begin With TInfo[n] Do WriteLn('grade ', grade, ' name ', name, ' surname ', surname, ' birthdate ', birthdate, ' year ', year, ' kurs ', kurs, ' group ',group); End; Var f: TStudentFile; i: Integer; Begin For i := 1 To maxStudent Do input_data(i); sort(maxStudent); For i := 1 To maxStudent Do write_data(i); Assign(f, 'STUD.DAT'); Rewrite(f); For i := 1 To maxStudent Do write_file(f, i); Close(f) End. |
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 5:30 |