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

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

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

> Записи. Ввод информации и печать определённых данных
Гость
сообщение 6.05.2007 13:47
Сообщение #1


Гость






Задача
Сведения о студентах ВУЗа записаны в массиве и содержит следующую информацию: фамилия, имя отчество, пол (М или Ж), возраст (от 16 до 35), курс (от 1-го до 5-го). Напишите программу, которая вводит эту информацию и печатает следущие данные: номер курса, на котором наибольший процент мужчин.

Для решения нужно использовать записи и оператор присоединения.

FAQ смотрел, но т.к. там только основа, то не разобрался. Как объявить - понятно. Как ввести информацию тоже понятно, но как оперировать ими в теле программы не очень понятно. Помогите кодом пожалуйста
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 13)
мисс_граффити
сообщение 6.05.2007 13:56
Сообщение #2


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

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

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


Цитата
Как объявить - понятно. Как ввести информацию тоже понятно

Сделай это для начала.

Цитата
оператор присоединения

что это?


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


Гость






Цитата
что это?
With ? blink.gif
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 6.05.2007 16:34
Сообщение #4


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

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

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


буду знать, что он так называется smile.gif первый раз слышу...


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


Гость






Ну а дальше что?
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 7.05.2007 22:03
Сообщение #6


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

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

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


Показать, что сделал.


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


Новичок
*

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

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


Цитата(мисс_граффити @ 7.05.2007 23:03) *

Показать, что сделал.

Код

uses
  SysUtils,
  windows;

const n=3;
type
  Tpol = (m,w);
  TRec = record
     name : string [31];
     age : 16..35;
     kurs : 1..5;
     sex : Tpol;
  end;

  TBase = array [1..n] of TRec;
var x:Trec; c:char;
    base : TBase;
procedure Input(var b : TBase);
var
   i,j : integer;  c:char;
begin
  writeln('ввод базы данных. ');
  for i := 1 to n do
    with b[i] do begin
      writeln('Студент N ',i);
      writeln('Имя : ');
      readln(name);
      writeln('Возраст: ');
      readln (age);
      writeln('Курс: ');
      readln (kurs);
      writeln('Пол (m/w): ');
      readln (c);
      case c of
        'm':x.sex:=m;
        'w':x.sex:=w
      end;
      writeln;
    end;
end;


Я гостем был. Вот ввод сделал...
Посчитайте мужчин..

Сообщение отредактировано: *alt - 10.05.2007 11:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
samec
сообщение 10.05.2007 12:10
Сообщение #8


Бывалый
***

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

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


вот как то так (набивал сдесь, так что могут быть ошибки!)

procedure percent(b : TBase);
var
   i,max : integer;
   kur:array[1..5,1..2] of integer;
   temp:real;
begin
  for i:=1 to 5 do
   begin
    kur[i,1]:=0;
    kur[i,2]:=0;
   end;
  for i := 1 to n do
    with b[i] do
      case sex of
        'm':inc(kur[kurs,1]);
        'w':inc(kur[kurs,2]);
      end;
 max:=1;
 temp:=100*kur[1,1]/(kur[1,1]+kur[1,2]);
 for i:=2 to 5 do
  if (100*kur[i,1]/(kur[i,1]+kur[i,2]))>temp then
   begin
    temp:=100*kur[i,1]/(kur[i,1]+kur[i,2]);
    max:=i;
   end;
 writeln('На ',i,'-ом курсе наибольший процент мужчин');
end;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
*alt
сообщение 10.05.2007 13:16
Сообщение #9


Новичок
*

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

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


samec спасибо, но есть трудность.
Посмотрите код. Вылетает

Код

program page126num15a;

{$APPTYPE CONSOLE}
uses
  SysUtils,
  windows;

const n=3;
type
  Tpol = (m,w);
  TRec = record
     name : string [31];
     age : 16..35;
     kurs : 1..5;
     sex : Tpol;
  end;

  TBase = array [1..n] of TRec; // База данных : информация о студентах.
var x:Trec;
    base : TBase;
procedure Input(var b : TBase); // ввод базы даннх
var
   i : integer;  c:char;
begin
  writeln('Ввод базы данных. ');
  for i := 1 to n do
    with b[i] do begin
      writeln('Студент N ',i);
      writeln('Имя : ');
      readln(name);
      writeln('Возраст: ');
      readln (age);
      writeln('Курс: ');
      readln (kurs);
      writeln('Введите пол (m/w): ');
      readln (c);
      case c of
        'm':x.sex:=m;
        'w':x.sex:=w
      end;
      writeln;
    end;
end;
procedure percent(b : TBase);
var
   i,max : integer;
   kur:array[1..5,1..2] of integer;
   temp:real;
begin
  for i:=1 to 5 do
   begin
    kur[i,1]:=0;
    kur[i,2]:=0;
   end;
  for i := 1 to n do
    with b[i] do
      case sex of
        m:inc(kur[b[i].kurs,1]);
        w:inc(kur[b[i].kurs,2]);
      end;

{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!ВОТ тут почему-то вылетает!!!!!!!!!!!!!!!!!!!!!}
max:=1;

temp:=100*kur[1,1]/(kur[1,1]+kur[1,2]);
for i:=2 to 5 do
  if (100*kur[i,1]/(kur[i,1]+kur[i,2]))>temp then
   begin
    temp:=100*kur[i,1]/(kur[i,1]+kur[i,2]);
    max:=i;
   end;
writeln('На ',i,'-ом курсе наибольший процент мужчин');
readln;
end;

begin
  {обращение к русскому языку}
  setconsoleCp(1251);
  setconsoleOutputCp(1251);
  input(base);
  percent(base);
  readln
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
samec
сообщение 10.05.2007 14:30
Сообщение #10


Бывалый
***

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

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


вот:

program page126num15a;

const n=3;
type
  Tpol = (m,w);
  TRec = record
     name : string [31];
     age : 16..35;
     kurs : 1..5;
     sex : Tpol;
  end;

  TBase = array [1..n] of TRec;
var x:Trec;
    base : TBase;
procedure Input(var b : TBase);
var
   i : integer;  c:char;
begin
  writeln('Ввод базы данных. ');
  for i := 1 to n do
    with b[i] do begin
      writeln('Студент N ',i);
      writeln('Имя : ');
      readln(name);
      writeln('Возраст: ');
      readln (age);
      writeln('Курс: ');
      readln (kurs);
      writeln('Введите пол (m/w): ');
      readln (c);
      case c of
        'm':sex:=m;   {вот тут я не понял, почему ты писал 'm':x.sex:=m;}
        'w':sex:=w        {'w':x.sex:=w ?????}
      end;
      writeln;
    end;
end;
procedure percent(b : TBase);
var
   i,max : integer;
   kur:array[1..5,1..2] of integer;
   temp:real;
begin
  for i:=1 to 5 do
   begin
    kur[i,1]:=0;
    kur[i,2]:=0;
   end;
  for i := 1 to n do
    with b[i] do
      case sex of
        m:inc(kur[kurs,1]);
        w:inc(kur[kurs,2]);
      end;

max:=0;                          {сдесь небольшие дороботачки}                             
temp:=0;
for i:=1 to 5 do
  if (kur[i,1]>0) then
   if (100*kur[i,1]/(kur[i,1]+kur[i,2]))>temp then
   begin
    temp:=100*kur[i,1]/(kur[i,1]+kur[i,2]);
    max:=i;
   end;
writeln('На ',max,'-ом курсе наибольший процент мужчин');
end;

begin
  input(base);
  percent(base);
  readln
end.



Сообщение отредактировано: samec - 10.05.2007 15:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.05.2007 14:42
Сообщение #11


Гость






samec, а теперь посмотри на НАЗВАНИЕ раздела! Еще одна не компилящаяся в TP программа - пеняй на себя.

То же самое касается и автора вопроса - думать надо, прежде, чем размещать вопросы где попало...
 К началу страницы 
+ Ответить 
samec
сообщение 10.05.2007 15:04
Сообщение #12


Бывалый
***

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

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


volvo исправил, а делал я её в именно в Паскале, просто те строки кода, которые в паскале не компилируются я убирал. А сдесь их поставил, для того, чтобы автор темы ещё раз не спрашивал: "а почему у меня не работает???" . вот и всё. Изините, если что не так.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 10.05.2007 16:06
Сообщение #13


Гость






volvo, а кстати, где написано в каком компиляторе должна компилиться прога. Писали-то люди на паскале, чего и требует раздел.
 К началу страницы 
+ Ответить 
klem4
сообщение 10.05.2007 16:19
Сообщение #14


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Гость

Исходные тексты, выкладываемые в этот раздел должны обязательно компилироваться под 16б компилятором. Для 32б есть отдельный раздел.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

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