Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2015, 17:10   #1
Vitalij1
 
Регистрация: 25.02.2015
Сообщений: 7
По умолчанию Файлы и записи в Паскаль ! Возникает трудность в решении задачи

Сведения об автомобиле состоят из его марки, номера и фамилии владельца. Найти фамилии владельцев и номера автомобилей данной марки.

{Не получается правильно составить алгоритм. Прошу помочь}
Vitalij1 вне форума Ответить с цитированием
Старый 25.02.2015, 17:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сведения об автомобиле состоят из его марки, номера и фамилии владельца.
Код:
type
 avto=record
  marka,nomer,fio:String;
 end;
var a:array[1..10] of avto;i:integer;s:string;
Ввод данных:
Код:
for i:=1 to 10 do begin
 write('Марка: ');readln(a[i].marka);
 write('Номер: ');readln(a[i].nomer);
 write('Фио: ');readln(a[i].fio);
end;
Цитата:
Найти фамилии владельцев и номера автомобилей данной марки.
Код:

write('Марка: ');readln(s);

for i:=1 to 10 do begin if s<>a[i].marka then Continue;
 write('Марка: ');readln(a[i].marka);
 write('Номер: ');readln(a[i].nomer);
 write('Фио: ');readln(a[i].fio);
end;
Идея ясна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.02.2015, 17:48   #3
Vitalij1
 
Регистрация: 25.02.2015
Сообщений: 7
По умолчанию

Да, но почему s<>a[i].marka ? Мы же выводим на экран, если марка совпадает => if s=a[i].marka ?
Vitalij1 вне форума Ответить с цитированием
Старый 25.02.2015, 18:12   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Мы же выводим на экран, если марка совпадает
после continue допиши else begin
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 25.02.2015, 18:14   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от Vitalij1 Посмотреть сообщение
Да, но почему s<>a[i].marka ? Мы же выводим на экран, если марка совпадает => if s=a[i].marka ?
Потому что
Код:
then Continue;
Знаете, что значит Continue в цикле ?
type_Oleg вне форума Ответить с цитированием
Старый 25.02.2015, 18:19   #6
Vitalij1
 
Регистрация: 25.02.2015
Сообщений: 7
По умолчанию

Код:
const n=3;
type avto =record
               mar,nom,fio:string
               end;

var a:array[1..n] of avto;
mark:string;
k,i:integer;
Begin
for i:=1 to n do begin
 write('Введите марку автомобиля: ');readln(a[i].mar);
 write('Введите номер автомобиля: ');readln(a[i].nom);
 write('Введите фамилию владельца: ');readln(a[i].fio);
 writeln;
end;
write('Введите требуемую марку автомобиля: ');
read(mark);
k:=0;
for i:=1 to n do
if a[i].mar=mark then
 begin
  writeln('ФИО: ',a[i].fio,' ; ','Номер: ',a[i].nom);
  k:=1
 end;
 writeln;
if k=0 then write('Нет автомобилей данной марки');
End.
Вот целый код программы, вдруг кому-то пригодится;
Про continue не знаю, видимо, поэтому и немного недопонял Вас.
А за то, что навели на правильный ход мыслей, премного Вам благодарен !)

Последний раз редактировалось Stilet; 25.02.2015 в 19:06.
Vitalij1 вне форума Ответить с цитированием
Старый 25.02.2015, 18:38   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Кстати, в заголовке - "Файлы и записи в Паскаль"
Здесь, правда нет сохранения/открытия файлов.
Но если надо записи хранить в типизированном файле, то вместо
Код:
mar,nom,fio:string
надо будет например так
Код:
mar,nom,fio:string[20]
Не обязательно все по 20, можно разной длины. Но обязательно длину указать, иначе в файл не запишется.
type_Oleg вне форума Ответить с цитированием
Старый 25.02.2015, 19:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
после continue допиши else begin
Не надо...
Цитата:
Про continue не знаю, видимо, поэтому и немного недопонял Вас.
Это означает "Забить на остальные операторы цикла, и крутнуть его следующую итерацию."
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.02.2015, 20:45   #9
Vitalij1
 
Регистрация: 25.02.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Кстати, в заголовке - "Файлы и записи в Паскаль"
Здесь, правда нет сохранения/открытия файлов.
Но если надо записи хранить в типизированном файле, то вместо
Код:
mar,nom,fio:string
надо будет например так
Код:
mar,nom,fio:string[20]
Не обязательно все по 20, можно разной длины. Но обязательно длину указать, иначе в файл не запишется.
Здесь файлы не используются, мой косяк, просто используются некие сведения. (в файл мы их не пихаем).
Vitalij1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Загвостка в решении задачи с прямоугольным треугольником. naty7773 Помощь студентам 4 13.01.2012 06:40
паскаль. Записи. Файлы. Антон Лысенко Помощь студентам 6 13.09.2011 16:27
записи и файлы [Паскаль] Narim Помощь студентам 0 04.12.2010 13:51
Нужна помощь не решении задачи (файлы). VirtualPC Паскаль, Turbo Pascal, PascalABC.NET 0 20.12.2008 15:18