Часовой пояс: UTC + 3 часа




Куратор(ы):   Lord_of_Darkness   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 48 из 50<  1 ... 45  46  47  48  49  50  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Убедительная просьба ко всем, кто выкладывает исходники:
1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы

Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!

Прежде чем задать вопрос, воспользуйтесь учебником


Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь

Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36



Партнер
 

Member
Статус: Не в сети
Регистрация: 14.09.2008
Ребят помогите решить две задачи(пропустил тему где изучаются символы и строки)
1.Ввести в строку предложение, определение числа слов в нём и вывести слова построчно.Для решения использовать Length и Copy
2. Написать программу, которая вычисляет значение выражения N0O1N1O2 … OkNk , где Ni – целое одноразрядное число; Oi – один из двух знаков простейших арифметических действий: сложения гMџ_H(+) или вычитания.
По поводу первой задачи я так понял что Lеngth используется для подсчёта символов в строке и для решения задачи нужно подсчитать количество пробелов и уже потом исходя из того посчитать кол-во слов.Но как всё то расписать ума не приложу.

_________________
Gigabyte GA-MA770-UD3/955BE @3,93Ghz/Thermalright Silver Arrow/RAM 4GB @952Mhz(6-6-6-18-2T)/GTX 580 3GB @850mhz/SSD Plextor M3 128Gb/TT Toughpower750W


 

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
Откуда: Питер
использовать
Код:
i:=1;
while i<=length(r) do
begin
  . . .
  inc(i);
end;

и уменьшать i при удалении (i:=i-2)

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Junior
Статус: Не в сети
Регистрация: 09.09.2011
Откуда: Донецк
Lord_of_Darkness писал(а):
использовать
Код:
i:=1;
while i<=length(r) do
begin
  . . .
  inc(i);
end;

и уменьшать i при удалении (i:=i-2)

Спасибо огромное!


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
Приветствую тут такое встрялово не поможете!?
В библиотеке имеются книги, газеты, журналы. Для каждого печатного издания указать:
- название
- год выпуска(для книги), дату выпуска(для газет и журналов)
- автора (для книги), редактора(для газеты), состав редколлегии(для журнала)
- объем
Вывести информацию об изданиях, вышедших в заданном году


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Slay
- описать запись (record) с соответствующими полями
- объявить массив этих записей
- заполнить любым способом (в тексте программы, вводом с экрана, вводом из файла)
- перебирать в цикле массив, сравнивая поле "дата" с требуемым критерием и выводя на экран в случае совпадения

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
Спасибо)только в программировании я полный 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)


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
Код:
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)


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
Да про записи прочитал понял
вот тут дописал маленько надеюсь правильно
и вот эта строчка верна? 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);
   
   end;
end.


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Slay писал(а):
ведь Data у нас такого нет может Date

опечатка

Вы, товарищ, видимо очень слабо понимаете что делаете. Зачем так делать?
Цитата:
readln (Library.Date.Year);
Это не будет работать, во-первых. Во-вторых, это логическая ошибка. Читать надо в переменную requiredYear.
Данные в файле соответственно порядку считывания, каждый элемент на своей строке, вроде
Код:
Мемуары Васи Пупкина
1909
10
25
Вася Пупкин
287

Не забывайте про месяц и день, которые в приведенном коде не считываются из файла.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
Да явно если б я сильно понимал сам бы все сделал и без ошибок
но увы я критин)
так месяц и день дописал
и тогда за место 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);
   
   end;
end.


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Slay
Во-первых, Library это массив. И обращаться так Library.requiredYear к нему нельзя. Во-вторых, запись TLibrary не содержит поля requiredYear. requiredYear = требуемый(необходимый) год, по которому надо выбрать книги. requiredYear - это вообще вспомогательная переменная, которую еще в var надо объявить.
Файл лежит в том же каталоге, что и программа, в противном случае в assign() нужно указать полный путь к файлу.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
аа кажись понял
writeln (‘введите год’);
readln (requiredYear);
и после var дописать
requiredYear : Integer;
так должно быть верно


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
да

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
Код:
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 к педагогике?


 

Куратор темы
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Slay писал(а):
при вводе 1991 то что относится математике при 1992 к педагогике?

а что, на деле не проверить? Вопрос мне непонятен.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Junior
Статус: Не в сети
Регистрация: 30.11.2011
Не я все проверил.
Вопрос снят разобрался)
Благодарен тебе за помощь спасибо!


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 985 • Страница 48 из 50<  1 ... 45  46  47  48  49  50  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan