Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 08.05.2012, 18:43   #1 (permalink)
Oksana777
Member
 
Регистрация: 08.05.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Записи

Создать массив из 10 записей, хранящих инфо об автовладельцах, фамилия, адрес, номер и марка авто. Посчитать количество автовладельцев, проживающих на заданной улице и имеющих авто заданной марки
Oksana777 вне форума   Ответить с цитированием

Старый 08.05.2012, 18:43
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Нужная для вас информация содержится в аналогичных темах

Паскаль и записи
Паскаль. Записи
Строки и записи.
Записи

Старый 08.05.2012, 19:22   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Только что аналогичная задача была решена и разобрана здесь: Упорядочить по фамилиям . Адаптируйте к своей задаче самостоятельно.

И модераторское замечание. Вы что, сговорились все - пихать по несколько дублей топиков на форум? Дубликат из соседнего раздела удален, а Вам - первое (оно же последнее) предупреждение. В конце концов, перестану угрожать и начну всерьез банить за подобные выходки.
Vladimir_S вне форума   Ответить с цитированием
Старый 08.05.2012, 21:54   #3 (permalink)
Oksana777
Member
 
Регистрация: 08.05.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Uses crt;
Type
book=Record
fam: String;
adr: String;
nom: String;
mar: String;
end;
Var
x: Array[1..10] of book;
i,k: Integer;
ul,m: String;
BEGIN
Clrscr;
For i:=1 to 10 do
begin
Writeln('Введите фамилию: '); Readln(x[i].fam);
Writeln('Введите адрес: '); Readln(x[i].adr);
Writeln('Введите номер: '); Readln(x[i].nom);
Writeln('Введите марку: '); Readln(x[i].mar);
end;
Writeln('Критерии поиска');
Writeln('Введите улицу: '); Readln(ul);
Writeln('Введите марку: '); Readln(m);
For i:=1 to 10 do
If (x[i].adr=ul) and (x[i].mar=m) Then
Inc(k);
Writeln('Кол-во автовладельцев, проживающих на заданной улице и имеющих авто заданной марки: ',k);
Readln
END.
я знаю, что это можно записать так. Но как это записать посчёт этого количества в функции?
Oksana777 вне форума   Ответить с цитированием
Старый 08.05.2012, 22:07   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Oksana777 Посмотреть сообщение
я знаю, что это можно записать так. Но как это записать посчёт этого количества в функции?
Так же, как это сделано в программе по ссылке, что я Вам дал: там ввод, вывод и отбор упихнуты в процедуры. Вот и действуйте "по образу и подобию".
И вот еще что. Поле записи "адрес" придется разделить и вводить отдельно название улицы и номер дома, раз уж требуется сделать отбор по улице.
Удачи!
Vladimir_S вне форума   Ответить с цитированием
Старый 10.05.2012, 17:18   #5 (permalink)
Oksana777
Member
 
Регистрация: 08.05.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо Вам)))
Oksana777 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 24.05.2012, 07:41   #6 (permalink)
Oksana777
Member
 
Регистрация: 08.05.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Записи

Создать массив из 10 записей, хранящих информацию об автовладельцах.Упорядочить массив по адресам автовладельцев и Посчитать количество автовладельцев, проживающих на заданной улице и имеющих автомобиль заданной марки( помогите с последним пунктом, нужно записать в процедуре либо функции. Если что, ниже вся программа без этого пункта


Код Pascal

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils,
Windows;

const
n=10;
type
telem=record
surname:string;
model:string;
number:string;
address:string
end;
tmas=array [1..n] of telem;
var
man:tmas;
mn,choice,i:Integer;
exit_:char;
error_in: boolean;
//-----------------------------------------------------------------------------------------//
Function menu :integer; //Вывод меню на экран
begin
writeln;
writeln (' ','1.Упорядочить массив по адресам автовладельцев');
writeln (' ','2.Посчитать количество автовладельцев, проживающих на заданной улице и имеющих автомобиль заданной марки.');
Writeln (' ','3.Завершение работы.');
repeat
write ('Ваш выбор: ');
readln (choice);
error_in:=(choice<1) or (choice >3);
if error_in then writeln ('Ошибка ввода!')
until not error_in;
menu:=choice;
end;
//-----------------------------------------------------------------------------------------//
Procedure VvodDannuh(var a:tmas); //ввод данных
var i:integer;
begin
SetConsoleOutputCP(1251);
for i:=1 to n do
with a[i] do
begin
Writeln('Введите фамилию:');
Readln(surname);
Writeln('Введите марку автомобиля:');
Readln(model);
Writeln('Введите номер:');
Readln(number);
Writeln('Введите адрес:');
Readln(address);
writeln;
end
end;
//-----------------------------------------------------------------------------------------//
Procedure VuvodDannuh(a:tmas); //вывод данных
var i:integer;
begin
SetConsoleOutputCP(1251);
writeln ('--------------------------------------------------------------------------');
writeln (' Фамилия | Марка автомобиля | Номер | Адрес ');
writeln ('--------------------------------------------------------------------------');
for i:=1 to n do
writeln(a[i].surname:15,' ',a[i].model:15,' ',a[i].number:5,' ',a[i].address:15);
end;
//-----------------------------------------------------------------------------------------//
Procedure Sortirovka; //упорядочение по адресам
var
x:telem;
i,j:integer;
begin
for i:=1 to n do
for j:=1 to n-i do
if Ord(man[j].address[1])>Ord(man[j+1].address[1]) then
begin
x:=man[j];
man[j]:=man[j+1];
man[j+1]:=x
end
end;

Begin
SetConsoleOutputCP(1251);
VvodDannuh(man);
writeln;
VuvodDannuh(man);
REPEAT
mn:=Menu;
case mn of
1:begin
Sortirovka;
VuvodDannuh(man)
end;
2: begin
Writeln('Количество автовладельцев, проживающих на заданной улице и имеющих автомобиль заданной марки');

end
end;
if mn<>3 then
begin
Writeln;
write (' ','Завершить работу? (Y/N)');
readln(exit_);
end;
UNTIL (exit_='y') or (exit_='Y') or (choice=3);
readln

End.

Замечание:
Ну и зачем было новую тему создавать? Темы объединены.
Модератор
Oksana777 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:17.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.