14.02.2013, 01:46 | #1 (permalink) |
Member
Регистрация: 13.02.2013
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 68
|
Проверьте, пожалуйста, программу. Паскаль
сведения об автомобиле состоят из его марки, номера, цвета, фамилии владельца.Подсчитать количество автомобилей заданной марки. type vedomost=record marka:string; nomer:integer; color:string; familia:string; end; var danue:array[1..3] of vedomost; i,m:integer; k:string; begin for i:=1 to 3 do with danue[i] do begin writeln('Марка-'); readln(marka); writeln('Номер-'); readln(nomer); writeln('Цвет-');readln(color); writeln('Фамилия-');readln(familia); end; writeln('Марка машины для подсчета');readln(k); for i:=1 to 3 do begin with danue[i] do if marka=k then begin writeln(marka); end; end; readln; end. |
14.02.2013, 01:46 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, просмотрите внимательно аналогичные топики Проверьте, пожалуйста, печатную плату Проверьте, пожалуйста |
14.02.2013, 15:33 | #2 (permalink) | ||
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
Данные надо вводить или уже есть? И что за дебилизм с "for i:=1 to 3 do"??? Это в смысле, если ты вводишь, то не более трех машинок? А 100? А 101?
|
||
14.02.2013, 19:43 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
"Имеющий глаза да увидит"... Если бы Вы дали себе труд внимательно посмотреть код, вместо того, чтобы демонстрировать, какой Вы крутой программист, то, вне всякого сомнения, узрели бы блок ввода данных и тогда отпала бы нужда в данном вопросе.
|
14.02.2013, 20:02 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
В целом правильно и грамотно, но несколько замечаний.
1. Несмотря на недопустимо-хамский тон, по сути Debianer прав в том смысле, что полное число машин лучше задать в виде константы, которую легко можно менять при желании. 2. Подсказки при вводе лучше давать без перевода строки и с пробелом в конце. Красивее. 3. В задании требуется подсчитать количество машин данной марки, а не выводить несколько раз название этой марки. 4. Если оператор (в частности, if..then) действует на ОДИН операнд, то операторные скобки begin..end ставить не обязательно. Можно, но не нужно. Итого, с учетом сказанного: Код:
const N=3; type vedomost=record marka:string; nomer:integer; color:string; familia:string; end; var danue:array[1..N] of vedomost; i,m,Q:integer; k:string; begin for i:=1 to N do with danue[i] do begin write('Марка - '); readln(marka); write('Номер - '); readln(nomer); write('Цвет - '); readln(color); write('Фамилия - '); readln(familia); end; writeln; write('Марка машины для подсчета - '); readln(k); Q:=0; for i:=1 to N do if danue[i].marka=k then Inc(Q); writeln(Q,' машин'); readln; end. |
19.02.2013, 03:42 | #5 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
За тон прошу прощения, погорячился
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
19.02.2013, 08:28 | #6 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
И еще один совет: не задавайте границы массива, лучше воспользуйтесь динамическим. Насколько я помню, в турбопаскале динамических массивов не было, вместо них использовали списки.
Погуглив, нарыл достаточно информации по этому. Просто при использовании динамического массива вы отвязываетесь от предельного размера данных, т.е. можно ввести и три машинки, и 133. Организовать данную работу можно через указатели и GetMem. Считаю, что так будет наиболее правильно, жизненно и соответствовать условиям задачи. ЗЫ: да, код болучится более сложным |
19.02.2013, 08:31 | #7 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
Код я посмотрел. Вопрос про ввод данных возник не из кода, а из условия задачи - там неявно, вводятся ли данные, берутся они из файла, потока, базы данных... Отсюда и вопрос возник, нужен ли ввод или нет
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|