pascal простенькие задачки

Ответить
OxoTHuk
Сообщения: 2
Зарегистрирован: 07 апр 2009, 19:17

народ, у меня с программирование беда, а надо следать лабораторки, помогите пожалуйста с кодом.

Составить процедуру подсчета количества элементов одномерного массива А, значения которых лежат в пределах от p до q. С помощью этой процедуры подсчитать количество таких элементов для каждой строки матрицы В.

Сводка выполнения плана содержит сведения: наименование изделия, шифр, единица измерения, план выпуска, фактически выпущено, отклонение от плана (перевыполнение, недовыполнение). Описать и выполнить запись для пяти позиций сводки. Предусмотреть возможность выдачи данных по введенному наименованию изделия.

заранее спасибо, товарищи!!!!!
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Насчет первой: минимум и максимум находили здесь тысячу раз (потрудись поискать), что касается диагоналей, то у главной индексы (номер строки и номер столбца) будут равны, а у побочной для матрицы 5 на 5 они в сумме будут давать 6. Для смены местами тебе понадобится дополнительная переменная такого же типа как и элементы матрицы. Надо сравнить min и max и если они равны пробежаться по массиву и проверяя условия диагоналей (см. выше) присваивать элементам значение max или min (как тебе больше нравится).

Вторая: описать процедуру, которая на входе будет принимать одномерный массив. В реализации: проходить по массиву в цикле и если элемент меньше p, но больше q, то увеличивать обнуленную перед началом цикла переменную на единицу.

Третья:
[syntax=pascal]
uses crt;
type
PLAN=record
naim:string;
shifr:string;
ed:string;
vyp:integer;
fact:integer;
otkl:string; {or boolean}
end;
var a:array[1..50] of plan;
i,kol,n:byte;
otvet,vyb:char;
s:string;
begin
i:=0;n:=0;
repeat
clrscr;
i:=i+1;
writeln('#',i);
write('Naimenovanie: ');
readln(a.naim);
write('Shifr: ');
readln(a.shifr);
write('Edinicy izmerenia: ');
readln(a.ed);
write('Plan vypuska: ');
readln(a.vyp);
write('Vypuscheno faktichesli: ');
readln(a.fact);
write('Otklonenie ot plana: ');
readln(a.otkl);
kol:=i;
writeln('OK!');
writeln('ESC - EXIT');
write('Press any key... ');
otvet:=readkey;
until otvet=#27;
clrscr;
writeln('Sozdano ',kol,' zapisei.');
write('Prosmotret? [y/n] ');
vyb:=readkey;
writeln;
if (vyb='y') or (vyb='Y') then
begin
writeln('Vvedite naimenovanie: ');
readln(s);
clrscr;
textmode(259);
for i:=1 to kol do
if a.naim=s then
begin
writeln;
writeln('#',i);
writeln('Naimenovanie: ',a.naim);
writeln('Shifr: ',a.shifr);
writeln('Edinicy izmerenia: ',a.ed);
writeln('Plan vypuska: ',a[i].vyp);
writeln('Vypuscheno faktichesli: ',a[i].fact);
writeln('Otklonenie ot plana: ',a[i].otkl);
n:=n+1;
end;
writeln;
writeln('Naideno zapisei: ',n);
readln;
end;
end.
[/syntax]
Нет религии выше истины
Ответить