![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Romario |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
Начинаю серьёзно учить Паскаль и вот решил создать и пихать сюда все неясности, если вы конечно не против
Первые вопросы:
|
![]() ![]() |
Romario |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 89 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Код program number21; const n=5; type book=record avtor:string; name:string; year:integer; pub:string; str:integer; end; var mas:array[1..n] of book; avtor2,pub2,avt:string; pages,years,i:integer; file1:file of book; begin assign(file1, 'C:Files2.txt'); rewrite(file1); for i:=1 to n do begin writeln('автор'); readln(mas[i].avtor); writeln('книга'); readln(mas[i].name); writeln('год'); readln(mas[i].year); writeln('издатель'); readln(mas[i].pub); writeln('страницы'); readln(mas[i].str); write(file1,mas[i]); end; writeln('фамилия автора'); readln(avt); for i:=1 to n do if avt=mas[i].avtor then writeln('книги есть'); pages:=mas[1].str; for i:=2 to n do if pages<mas[i].str then begin pages:=mas[i].str; writeln('книга ',mas[i].name); end; writeln('издатель,автор,год'); readln(pub2); readln(avtor2); readln(years); for i:=1 to n do if (pub2=mas[i].pub) and (avtor2=mas[i].avtor) and (years<mas[i].year) then begin for i:=1 to n do write(mas[i].name,' '); end; close(file1); end. У меня вопрос к этой задачке... 1) Как сделать так, чтобы в этом цикле: Код writeln('фамилия автора'); readln(avt); for i:=1 to n do if avt=mas[i].avtor then writeln('книги есть'); если введена не существующая в базе фамилия, то выдавалась месага Такого автора в базе нет! Понимаю, что в цикл включать нельзя, потому как он выдаст эту строку столько раз, сколько элементов =))) 2) Цикл нахождения книги, у которой наибольшее кол-во страниц считаю НЕВЕРНЫМ! ![]() Код pages:=mas[1].str; for i:=2 to n do if pages<mas[i].str then begin pages:=mas[i].str; writeln('книга ',mas[i].name); end; Почему цикл начинается со 2-го элемента, а если эта книга 1-й элемент? ![]() 3) Не объсянит ли мне автор эти строки: Код for i:=1 to n do if (pub2=mas[i].pub) and (avtor2=mas[i].avtor) and (years<mas[i].year) then begin for i:=1 to n do write(mas[i].name,' '); end; Не могу понять... ввожу верные данные, но он ничего не выводит ![]() 4) Что означает в этом цикле: Код for i:=1 to n do begin writeln('автор'); readln(mas[i].avtor); writeln('книга'); readln(mas[i].name); writeln('год'); readln(mas[i].year); writeln('издатель'); readln(mas[i].pub); writeln('страницы'); readln(mas[i].str); write(file1,mas[i]); end; Строка write(file1,mas[i]); Жду с нетерпением! ![]() |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 12:15 |