08.05.2012, 18:43 | #1 (permalink) |
Member
Регистрация: 08.05.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Записи
|
08.05.2012, 18:43 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Нужная для вас информация содержится в аналогичных темах Паскаль и записи Паскаль. Записи Строки и записи. Записи |
08.05.2012, 19:22 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Только что аналогичная задача была решена и разобрана здесь: Упорядочить по фамилиям . Адаптируйте к своей задаче самостоятельно.
И модераторское замечание. Вы что, сговорились все - пихать по несколько дублей топиков на форум? Дубликат из соседнего раздела удален, а Вам - первое (оно же последнее) предупреждение. В конце концов, перестану угрожать и начну всерьез банить за подобные выходки. |
08.05.2012, 21:54 | #3 (permalink) |
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. я знаю, что это можно записать так. Но как это записать посчёт этого количества в функции? |
08.05.2012, 22:07 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
И вот еще что. Поле записи "адрес" придется разделить и вводить отдельно название улицы и номер дома, раз уж требуется сделать отбор по улице. Удачи! |
|
10.05.2012, 17:18 | #5 (permalink) |
Member
Регистрация: 08.05.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо Вам)))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
24.05.2012, 07:41 | #6 (permalink) | ||
Member
Регистрация: 08.05.2012
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Записи
Создать массив из 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.
|
||
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|