Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Одномерный массив и записи

Автор: Галия 2.05.2004 22:59

Привет! Поиогите пожалуйста решить 2 задачи!
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
кол-во элементов массива, равных 0.
сумму элементов массива, расположенных после минимального элемента.
Упорядочить элементы массива по возрастанию модулей элементов

Записи:
Описать переменную расписания, содержащую:
день недели
кол-во пар в этот день
время начала и конца пары
название предмета
фамилию препода
Вывести полную информацию о занятиях, относящихся к предметной области "Информатика"
Заранее спасибо!!!

Автор: Catty 3.05.2004 4:57

Код
uses Crt;
const n=8;
var a:array[1..n] of real;
i,j,k,l:byte;  min,S,h:real;
begin
ClrScr;
writeln('vvedite masiv:');
for i:=1 to n do begin
write('vvedite',' ',i,'-uj element masiva:>',' ');
readln(a[i]);
end;
writeln;
writeln('zadanuj masiv:');
for i:=1 to n do
write(a[i]:4:1);
writeln;
k:=0;
for i:=1 to n do
if a[i]=0 then inc(k);
writeln;
writeln('kolichestvo nulevux elementov masiva=',' ',k);
min:=a[1]; l:=1;
S:=0;
for i:=2 to n do
if a[i]<min then
begin
min:=a[i];
l:=i;
end;
for j:=l to n do
S:=S+a[j];
writeln;
writeln('min=',' ',min:4:1);
writeln('summa elementov posle min=',' ',S:4:1);
writeln;
for i:=1 to n-1 do
for j:=1+i to n do
if abs(a[i])>abs(a[j]) then
begin
h:=abs(a[i]);
a[i]:=abs(a[j]);
a[j]:=h;
end;
writeln;
writeln('sortirovka masiva po vozrostaniu');
for i:=1 to n do
writeln(a[i]:4:1);
end.

первая программа

во второй просто ввести записи и и сделать фильтрацию по слову "информатика" или как?

Автор: AlaRic 3.05.2004 11:35

Так будет чуть легче:

Код
uses Crt;
const n=8;
var a:array[1..n] of real;
i,j,k,l:byte;  min,S,h:real;
begin
ClrScr;
k:=0;S:=0;
min:=a[1]; l:=1;
writeln('vvedite masiv:');
for i:=1 to n do begin
write('vvedite',' ',i,'-uj element masiva:>',' ');
readln(a[i]);
if a[i]=0 then inc(k);
if a[i]<min then
begin
min:=a[i];
l:=i;
end;
end;
writeln('zadanuj masiv:');
for i:=1 to n do
write(a[i]:4:1);
writeln('kolichestvo nulevux elementov masiva=',' ',k);
for j:=l to n do
S:=S+a[j];
writeln('min=',' ',min:4:1);
writeln('summa elementov posle min=',' ',S:4:1);
writeln;
for i:=1 to n-1 do
if abs(a[i])>abs(a[i+1]) then begin
h:=abs(a[i]);
a[i]:=abs(a[i+1]);
a[i+1]:=h;
end;
writeln('sortirovka masiva po vozrostaniu');
for i:=1 to n do
writeln(a[i]:4:1);
end.

Автор: Галия 3.05.2004 23:19

Огроменное спасибо за первую задачу! А вовторой да только ввод и фильтрация

Автор: Catty 4.05.2004 2:53

Код
uses Crt;
type
raspisanie=record
den:string;
k_par:byte;
vremja_nach:byte;
vremja_kon:byte;
predmet:string;
fam:string;
end;
var
a:array[1..20] of raspisanie;
i,n:byte;    anw:char;
Begin
ClrScr;

i:=1; repeat
with a[i] do begin
write('den:>'); readln(den);
write('k_par:>'); readln(k_par);
write('vremja_nach:>'); readln(vremja_nach);
write('vremja_kon:>'); readln(vremja_kon);
write('predmet:>'); readln(predmet);
write('fam:>'); readln(fam);
end;
inc(i);

writeln('Do u want to create a new one record ?');
 readln(anw);
 until (anw ='N') or (anw='n');

n:=i-1;
ClrScr;
writeln('informacija o predmete "informatika"');
writeln;
for i:=1 to n do
begin
if (a[i].predmet='informatika') then
with a[i] do begin
write('den:>'); writeln(den);
write('k_par:>'); writeln(k_par);
write('vremja_nach:>'); writeln(vremja_nach);
write('vremja_kon:>'); writeln(vremja_kon);
write('predmet:>'); writeln(predmet);
write('fam:>'); writeln(fam);
end;
end;
ReadKey;
End.

так что ли? :p2: