Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Ребят помогите решить две задачи(пропустил тему где изучаются символы и строки) 1.Ввести в строку предложение, определение числа слов в нём и вывести слова построчно.Для решения использовать Length и Copy 2. Написать программу, которая вычисляет значение выражения N0O1N1O2 … OkNk , где Ni – целое одноразрядное число; Oi – один из двух знаков простейших арифметических действий: сложения гMџ_H(+) или вычитания. По поводу первой задачи я так понял что Lеngth используется для подсчёта символов в строке и для решения задачи нужно подсчитать количество пробелов и уже потом исходя из того посчитать кол-во слов.Но как всё то расписать ума не приложу.
Member
Статус: Не в сети Регистрация: 10.02.2011 Откуда: Беларусь
Подскажите пожалуйста. Начал учить по самоучителю Турбо-Паскаль. Автор дает примеры для практики на кирилице, но программа TURBO.EXE кирилицу не принимает. Что делать?
Junior
Статус: Не в сети Регистрация: 09.09.2011 Откуда: Донецк
Начал учить строки. Первая программа. Удалить сдвоенные символы.
Код:
var r:string[5]; i,l:integer; Begin Writeln('Vvedite riad'); Readln(r); l:=length(r); For i:= 1 to l-1 do begin if (r[i])=(r[i+1]) then begin delete(r,i,2); end; End; Writeln(r); Read; End.
Проблема в том, что ряд уменьшается при удалении, а параметр цикла нет. Как сделать правильно?
Приветствую тут такое встрялово не поможете!? В библиотеке имеются книги, газеты, журналы. Для каждого печатного издания указать: - название - год выпуска(для книги), дату выпуска(для газет и журналов) - автора (для книги), редактора(для газеты), состав редколлегии(для журнала) - объем Вывести информацию об изданиях, вышедших в заданном году
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Slay - описать запись (record) с соответствующими полями - объявить массив этих записей - заполнить любым способом (в тексте программы, вводом с экрана, вводом из файла) - перебирать в цикле массив, сравнивая поле "дата" с требуемым критерием и выводя на экран в случае совпадения
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Спасибо)только в программировании я полный 0 Но что-нибудь да попытаюсь Type biblioteka = Record nazvanie: String[15]; {поле названия} goddata : Integer ;{поле года издания даты выпуска} Avtor : Byte ; {Незнаю как обьявить байт наверно Авторы редакторы редколлегия} Obem : Integer; (как я понял количество страниц) Var klass : Array[1.25] Of biblioteka;{Допустим 25 книг вводим массив klass, представляющий массив записей} {Надо чтобы было в файле а в каком нужно в текстовом пойдет? Математика 1990 Атанасян 199 типо того} И перебрать в цикле не знаю как End;
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Slay Типы в паскале принято обозначать начиная с буквы T. Ваш тип будет выглядеть как TBiblioteka. Еще лучше все на английском писать, TLibrary. На авторов нужно выделять большую строку string[255]. Почитайте про типы в паскале. Далее объявить массив Library : array [1..50] of TLibrary;
Перебирать так
Код:
for i:=1 to 50 do if Library[i].Date.Year = requiredYear then begin .... // вывод нужных полей на печать end;
записи обратите внимание на то, как там дата представлена, файлы
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Type TLibrary = Record nazvanie: String[15]; {поле названия} Date.Year : string[8] ;{поле года издания даты выпуска} Avtor : string[255] ; {поле Авторы редакторы редколлегия} Obem : Integer; (как я понял количество страниц) Library : array [1..50] of TLibrary; for i:=1 to 50 do if Library[i].Date.Year = requiredYear then begin .... // вывод нужных полей на печать end;
дата и год разные поля?или правильно написал блин как связать с файлом вывести нужные поля нифига непонятно там надо открыть файл какойто Assign(f, FileName) и читать файл Read(f, список переменных);
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Slay читайте про записи. Так не объявляется, там нужно вложенную запись сделать.
Код:
type TLibrary = record Title : String[15]; {поле названия} Date : record Year, Month, Day : integer;{поле года издания даты выпуска} end; Author : string[255] ; {поле Авторы редакторы редколлегия} numberOfPages : Integer; (как я понял количество страниц) end;
var Library : array [1..50] of TLibrary; f : text; i : integer; begin assign(f,'fin.txt'); reset(f); i:=1; while not EOF(f) do begin readln(f,Library[i].Title); readln(f,Library[i].Data.Year); . . . . . . и так далее i:=i+1; end;
ввести год с экрана
for i:=1 to 50 do if Library[i].Date.Year = requiredYear then begin writeln('Title ',Library[i].Title); . . . . . и т.д. end; end.
можно еще так дату записать
Код:
TDate = record Day : 1..31; Month : (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); Year : integer; end;
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Да про записи прочитал понял вот тут дописал маленько надеюсь правильно и вот эта строчка верна? readln(f,Library[i].Data.Year); ведь Data у нас такого нет может Date и еще где должен хранится текстовик?
Код:
type TLibrary = record Title : String[15]; {поле названия} Date : record Year, Month, Day : integer;{поле года издания даты выпуска} end; Author : string[255] ; {поле Авторы редакторы редколлегия} numberOfPages : Integer; {как я понял количество страниц} end;
var Library : array [1..50] of TLibrary; f : text; i : integer; begin assign(f,'fin.txt'); reset(f); i:=1; while not EOF(f) do begin readln(f,Library[i].Title); readln(f,Library[i].Data.Year); readln(f,Library[i].Author); readln(f,Library[i].numberOfPages); i:=i+1; end;
{ввести год с экрана} writeln (‘введите год’); readln (Library.Date.Year);
for i:=1 to 50 do if Library[i].Date.Year = requiredYear then begin writeln('Title ',Library[i].Title); writeln('Data.Year ',Library[i].Data.Year); writeln('Author ',Library[i].Author); writeln('numberOfPages ',Library[i].numberOfPages);
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Slay писал(а):
ведь Data у нас такого нет может Date
опечатка
Вы, товарищ, видимо очень слабо понимаете что делаете. Зачем так делать?
Цитата:
readln (Library.Date.Year);
Это не будет работать, во-первых. Во-вторых, это логическая ошибка. Читать надо в переменную requiredYear. Данные в файле соответственно порядку считывания, каждый элемент на своей строке, вроде
Код:
Мемуары Васи Пупкина 1909 10 25 Вася Пупкин 287
Не забывайте про месяц и день, которые в приведенном коде не считываются из файла.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Да явно если б я сильно понимал сам бы все сделал и без ошибок но увы я критин) так месяц и день дописал и тогда за место readln (Library.Date.Year) будет readln (Library.requiredYear) а что значит requred??? и все тотже вопрос где должен хранится текстовик?
Код:
type TLibrary = record Title : String[15]; {поле названия} Date : record Year, Month, Day : integer;{поле года издания даты выпуска} end; Author : string[255] ; {поле Авторы редакторы редколлегия} numberOfPages : Integer; {как я понял количество страниц} end;
var Library : array [1..50] of TLibrary; f : text; i : integer; begin assign(f,'fin.txt'); reset(f); i:=1; while not EOF(f) do begin readln(f,Library[i].Title); readln(f,Library[i].Date.Year); readln(f,Library[i].Date.Month); readln(f,Library[i].Date.Day); readln(f,Library[i].Author); readln(f,Library[i].numberOfPages); i:=i+1; end;
{ввести год с экрана} writeln (‘введите год’); readln (Library.requiredYear);
for i:=1 to 50 do if Library[i].Date.Year = requiredYear then begin writeln('Title ',Library[i].Title); writeln('Data.Year ',Library[i].Date.Year); writeln('Data.Year ',Library[i].Date.Month); writeln('Data.Year ',Library[i].Date.Day); writeln('Author ',Library[i].Author); writeln('numberOfPages ',Library[i].numberOfPages);
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Slay Во-первых, Library это массив. И обращаться так Library.requiredYear к нему нельзя. Во-вторых, запись TLibrary не содержит поля requiredYear. requiredYear = требуемый(необходимый) год, по которому надо выбрать книги. requiredYear - это вообще вспомогательная переменная, которую еще в var надо объявить. Файл лежит в том же каталоге, что и программа, в противном случае в assign() нужно указать полный путь к файлу.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
type TLibrary = record Title : String[15]; {поле названия} Date : record Year, Month, Day : integer;{поле года издания даты выпуска} end; Author : string[255] ; {поле Авторы редакторы редколлегия} numberOfPages : Integer; {как я понял количество страниц} end;
var Library : array [1..50] of TLibrary; f : text; i : integer; requiredYear : Integer; begin assign(f,'fin.txt'); reset(f); i:=1; while not EOF(f) do begin readln(f,Library[i].Title); readln(f,Library[i].Date.Year); readln(f,Library[i].Date.Month); readln(f,Library[i].Date.Day); readln(f,Library[i].Author); readln(f,Library[i].numberOfPages); i:=i+1; end;
{ввести год с экрана} writeln ('введите год'); readln (requiredYear);
for i:=1 to 50 do if Library[i].Date.Year = requiredYear then begin writeln('Title ',Library[i].Title); writeln('Data.Year ',Library[i].Date.Year); writeln('Data.Year ',Library[i].Date.Month); writeln('Data.Year ',Library[i].Date.Day); writeln('Author ',Library[i].Author); writeln('numberOfPages ',Library[i].numberOfPages);
end; end.
Запускаю говорит файл не найден запускаю в Pascal ABC файл в корне C:\Program Files (x86)\PABC
Добавлено спустя 11 минут 21 секунду: а нашел папка PABCWork все работает спасибо вот хотел еще узнать а как он выводит именно то что нам надо а не кучу всех строк Математика 1991 11 5 Пупкин 649 Педагогика 1992 4 5 Коленвалов 100
при вводе 1991 то что относится математике при 1992 к педагогике?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения