IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записи, проверьте задачу, Сведения об ученике состоят из его имени и фамилии, названия класса (г
Вася
сообщение 20.05.2007 11:03
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской

Репутация: -  0  +


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

d) выясните, в каких классах насчитывается более 15 учащихся;}
program s129n24dxXx;

{$APPTYPE CONSOLE}

uses
SysUtils,
windows;

const n = 100; // кол-во учеников
MaxN = 100; // макс кол-во оценок одного ученика
type
Tocenka = array [1..maxn] of integer; // тип массив оценок одного ученика
data = record // запись, данные ученика
fio: string; // фамилия и имя
klass1: integer; // класс (цифра)
klass2: char; // класс (литера)
chetvert: Tocenka; // оценки за последнюю четверть
end;
Tmas = array [1..n] of data; // массив данных учеников
var
ucheniki: Tmas; //массив данных учеников
i: integer; //счётчик
// процедура ввода данных об одном ученике
procedure read_data (var a: data);
var i: integer;
begin
writeln ('Введите сведения об ученике: ');
with a do
begin
write ('Фамилия и имя: ');
readln (fio);
write ('класс (цифру): ');
readln (klass1);
write ('класс (литеру): ');
readln (klass2);
write ('оценки за четверть: ');
readln (chetvert[i]);
end;
end;
// процедура поиска классов, в которых более 15 учеников
procedure poisk (var a: Tmas);
var i, j, k: integer;
begin
i:=0;
while i<=n do
begin
k:=1;
i:=i+1;
for j:=1 to n do
begin
if (a[i].klass1=a[j].klass1) and (a[i].klass2=a[j].klass2)
and (i<>j)
then
k:=k+1;
end;
if (k>=15) then
begin
writeln (a[i].klass1, ' ', a[i].klass2);
end;
end;
end;
begin{main}
// подключение модуля русского языка
SetConsoleCp (1251);
SetConsoleOutputCp (1251);
for i:=1 to n do // ввод данных всех учеников
begin
read_data (ucheniki[i]);
end;
poisk (ucheniki);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
мисс_граффити
сообщение 20.05.2007 11:19
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Приведи, пожалуйста, тему в соответствие с п.2 правил (наверху страницы).


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Krisss
сообщение 20.05.2007 16:12
Сообщение #3





Группа: Пользователи
Сообщений: 1
Пол: Женский
Реальное имя: Кристина

Репутация: -  0  +


Здравствуйте,я новичок))Мне нужна ваша помощь,я делала программу которая звучит так"Создайте набор данных, содержащий сведения о частоте материалов.Записи представляют собой таблицу,которая состоит из двух колонок:материал и частота.К созданному набору данных нужно добавить 2 новые записи".Я поняла как создать таблицу,а вот как потом к готовой таблице добавить новые записи непонятно.
тест программы:
USES CRT;

type rec=record
material:string[18];
chastota:real;
{Name:string[18];}
{ H:string[4];
SS:real;
C:real;}
end;
var zap:rec;
f:file of rec;
NameF:string;
m,I,IORes: BYTE;
vo:string[3];


PROCEDURE SHAP_TAB;
BEGIN
WRITELN(' ╔══════════════╦═════════╗');
WRITELN(' ║ Material ║ Chastota║');
WRITELN(' ║ ║ ║');
WRITELN(' ╠════════════════════════╣');
END;





PROCEDURE ZAG_TAB1;
BEGIN

writeln('Vvedite dannie o materialah');

END;

PROCEDURE PODVAL_TAB;
BEGIN
WRITELN('╚══════════════╩═════════╝');
END;

PROCEDURE PAUSE;
BEGIN
gotoXY(4,24);
WRITELN('ДЛЯ ПРОДОЛЖЕНИЯ НАЖМИ КЛАВИШУ Enter ');
readln;
clrscr
END;


BEGIN
clrscr;
m:=3;
i:=1;
vo:='';
Repeat
{$I-}
WRITELN(' Введите ИМЯ ФАЙЛА для записи ');
readln(NameF);
m:=m+2;
assign(f,NameF);
rewrite(f); { открыть в режиме перезаписи }
{$I+}
IORes:=IOResult;
if IORes<>0 then
WriteLn('Неверное имя');
Until IORes=0;

ZAG_TAB1;
SHAP_TAB;

while vo ='' do


BEGIN
GOTOxy(8,I+m+3);
WRITE('║');
GOTOxy(9,I+m+3);
READLN( zap.Material );
GOTOxy(23,I+m+3);
WRITE('║');
GOTOxy(24,I+m+3);
READLN( zap.Chastota );

GOTOxy(33,I+m+3);
WRITELN('║');

write(f,zap);


GOTOxy(4,24);
write('Продолжить ввод(да-Enter,нет-н)=>...');
readln(vo);

i:=i+1
END;
GOTOxy(8,I+m+3);
PODVAL_TAB;

PAUSE;

CLOSE(F);
writeln('Файл создан')

end.



Сообщение отредактировано: Krisss - 20.05.2007 16:15
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 14:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"