Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2013, 14:04   #1
Анечка43
 
Регистрация: 06.11.2013
Сообщений: 5
По умолчанию Записи (база данных) (паскаль)

Помогите пожалуйста создать базу данных.
Составить базу данных об учащихся предусмотрев поля Ф.И.О, список выбранных факультативов. Составить программу, позволяющую:
-ввести полный список учащихся,
-список учащихся данного факультатива,
-список учащихся, выбравших больше трех факультативов.
Анечка43 вне форума Ответить с цитированием
Старый 23.11.2013, 14:43   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Количество выбранных факультативов разное? И максимальное количество их чему равно?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 23.11.2013, 15:21   #3
Анечка43
 
Регистрация: 06.11.2013
Сообщений: 5
По умолчанию

да, разное. ну не более 5. неизвестное число.
Анечка43 вне форума Ответить с цитированием
Старый 23.11.2013, 16:36   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
const
  N=5;
type
  student=record // запись
    fio:string[128];
    fak:array [1..n] of string[128];
  end;
var 
  bd:array [1..25] of student; // сама база в массиве
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 24.11.2013, 10:25   #5
Анечка43
 
Регистрация: 06.11.2013
Сообщений: 5
По умолчанию

тоесть получается, что ФИО одного ученика я ввожу в одну строку? а не отдельно?

Код:
program based;
type
Student=Record
fio:string[128];
fak:array[1..5] of string [50];
end;
var
 i, j: byte;
bd:array[1..15] of student;
begin
procedure stud;
begin
for i:=1 to 15 do
  begin
   write ('vvedite FIO',i,'uchenika: ');
   readln(bd[i].fio);
     begin
      for j:=1 to 5 do
        begin
         write ('vvedite fakultativi, v kotorih zanimaetsia',i,'uchenik: ');
         readln(bd[i].fak[j]);
        end;
     end;
  end;
end;
procedure vivod;
begin
with bd[i] do
  begin
   writeln('fio uchenikov: ',fio);
  end;
begin
for i:=1 to 15 do
  stud;
writeln;
writeln('spisok uchashihsia odnogo fakultativa: ');
writeln;
writeln(bd[i].fak[j]);
vivod;
writeln('vibod dannih po naz fak: ');
writeln;
writeln('vvidite naz fak: ');
readln(bd[i].fak[j]);
 for i:=1 to 15 do
 if bd[i].fak[j]=bd[i].fak[j] then
 vivod;
end;
end;
end;
end.
Помогите, пожалуйста, доделать. Выводить список учащихся, выбравших больше трех факультативов.
И в том, что уже сделала ошибка..

Последний раз редактировалось Stilet; 24.11.2013 в 12:29.
Анечка43 вне форума Ответить с цитированием
Старый 24.11.2013, 14:52   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Можно и отдельно. По условию задачи непонятно.
А как вы обозначали тот случай, если студент выбрал меньше 5 факультативов? У вас при вводе заставляют выбирать все 5.

Последний раз редактировалось ZX Spectrum-128; 24.11.2013 в 14:54.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 25.11.2013, 09:49   #7
Анечка43
 
Регистрация: 06.11.2013
Сообщений: 5
По умолчанию

Код:
program based;
const
n=5;
k=15;
type
Student=Record
fio:string[128];
fak:array[1..n] of string [50];
end;
var
 i, j: byte;
bd:array[1..k] of student;
procedure stud;
begin
for i:=1 to k do
  begin
   write ('vvedite FIO',i,'uchenika: ');
   readln(bd[i].fio);
     begin
      for j:=1 to n do
        begin
         write ('vvedite fakultativi, v kotorih zanimaetsia',i,'uchenik: ');
         readln(bd[i].fak[j]);
        end;
     end;
  end;
end;
procedure vivod;
begin
with bd[i] do
  begin
   writeln('fio uchenikov: ',fio);
  end;
  begin
   for i:=1 to k do
   stud;
   writeln;
   writeln('spisok uchashihsia odnogo fakultativa: ');
   writeln;
   writeln(bd[i].fak[j]);
   vivod;
   writeln('vibod dannih po naz fak: ');
   writeln;
   writeln('vvidite naz fak: ');
   readln(bd[i].fak[j]);
   for i:=1 to k do
   if bd[i].fak[j]=bd[i].fak[j] then
   vivod;
  end;
end.
так?
Анечка43 вне форума Ответить с цитированием
Старый 25.11.2013, 10:24   #8
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

ввод и вывод списка учащихся
Код:
{Составить базу данных об учащихся предусмотрев поля Ф.И.О, список выбранных факультативов.
Составить программу, позволяющую:
-ввести полный список учащихся,
-список учащихся данного факультатива,
-список учащихся, выбравших больше трех факультативов.}

program based;
const
  n=5;
  k=3;
type
  Student=Record
    fam:string[64];
    im:string[64];
    ot:string[64];
    fak:array[1..n] of string [64];
  end;
var
   i,j :byte;
   bd :array[1..k] of student;

procedure bd_input;
begin
  for i:=1 to k do
    begin
      write ('Введите фамилию ',i,' ученика: ');
      readln(bd[i].fam);
      write ('Введите имя ',i,' ученика: ');
      readln(bd[i].im);
      write ('Введите фамилию ',i,' ученика: ');
      readln(bd[i].ot);
      for j:=1 to n do
        begin
         write ('Введите ',j,' факультатив, в котором занимается ученик ',i,' ученик: ');
         readln(bd[i].fak[j]);
        end;
     end;
end;

procedure bd_output;
begin
for i:=1 to k do
  begin
    with bd[i] do
      begin
        writeln('ФИО ',i,' ученика: ',fam,' ',im,' ',ot);
      end;
  end;
end;
begin
  bd_input;
  bd_output;
  readln;
end.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль,База данных. Gortxayer Помощь студентам 11 28.07.2013 19:46
база данных паскаль blackart Паскаль, Turbo Pascal, PascalABC.NET 2 27.11.2012 01:01
База данных, турбо паскаль Kries Помощь студентам 2 27.04.2012 19:44
База данных и паскаль Dimati87 Паскаль, Turbo Pascal, PascalABC.NET 1 30.04.2009 07:01