sokolskiy458
?>

Спрограммной на паскале, ) используя следующий фрагмент программы, опишите перечисленные ниже функции: type name = (аня, валя, женя, петя, саша, таня, шура, юра); information = record pol : (man, woman); height : 140..200 end; group = array [name] of information; а) функция средрост( гр ) определяет средний рост женщин из группы гр; б) функция высокий( гр ) определяет имя самого высокого мужчины из группы гр; в) логическая функция одинрост( гр ) проверяет, есть ли в группе гр хотя бы два человека одинакового роста.

Информатика

Ответы

mdsazonovatv1173
Type
  name=(Anya,Valya,Zhenya,Petya,Sasha,Tanya,Shura,Yura);
  gender=(man,woman);
  information=record
    pol:gender;
    height:140..200
    end;
  group=array[Anya..Yura] of information;

function SrRost(var Gr:group):single;
var
  i:name;
  s:single;
  n:integer;
begin
  s:=0; n:=0;
  for i:=Anya to Yura do
  begin s:=s+Gr[i].height; Inc(n) end;
  SrRost:=s/n
end;

function Vysokiy(var Gr:group):string;
var
  i,j:name;
  h:integer;
begin
  h:=Gr[Anya].height; j:=Anya;
  for i:=Valya to Yura do
  begin
    if Gr[i].height>h then
    begin h:=Gr[i].height; j:=i end
  end;
  Vysokiy:=j.ToString
end;

function OdinRost(var Gr:group):boolean;
var
  i,j:name;
  flag:boolean;
begin
  i:=Anya; flag:=false;
  repeat
    j:=Succ(i);
    while (not flag) and (j<=Yura) do
    begin flag:=(Gr[i].height<>Gr[j].height); Inc(j) end;
    flag:=(Gr[i].height<>Gr[j].height);
    if not flag then Inc(i);
  until flag or (i=Yura);
  OdinRost:=flag
end;

var
  Grp:group;
  i:name;
  g:0..1;
begin
  { ввод данных }
  for i:=Anya to Yura do
  begin
    Write(i.ToString+': укажите пол м/ж числом 0/1 ');
    Readln(g);
    if g=0 then Grp[i].pol:=man else Grp[i].pol:=woman;
    Write(i.ToString+': укажите рост, см (140-200) ');
    Readln(Grp[i].height)
  end;
  { вычисления }
  Writeln('Средний рост равен ',SrRost(Grp):0:1);
  Writeln('Наиболее высокий человек - ',Vysokiy(Grp));
  If OdinRost(Grp) then Writeln('Есть минимум два человека одного роста')
  else Writeln('У всех в группе разный рост');
end.

Тестовое решение:
Anya: укажите пол м/ж числом 0/1 1
Anya: укажите рост, см (140-200) 165
Valya: укажите пол м/ж числом 0/1 1
Valya: укажите рост, см (140-200) 170
Zhenya: укажите пол м/ж числом 0/1 0
Zhenya: укажите рост, см (140-200) 173
Petya: укажите пол м/ж числом 0/1 0
Petya: укажите рост, см (140-200) 178
Sasha: укажите пол м/ж числом 0/1 0
Sasha: укажите рост, см (140-200) 176
Tanya: укажите пол м/ж числом 0/1 1
Tanya: укажите рост, см (140-200) 170
Shura: укажите пол м/ж числом 0/1 1
Shura: укажите рост, см (140-200) 168
Yura: укажите пол м/ж числом 0/1 0
Yura: укажите рост, см (140-200) 175
Средний рост равен 171.9
Наиболее высокий человек - Petya
Есть минимум два человека одного роста
Викторович Попков
// PascalABC.NET 3.0, сборка 1164 от 11.02.2016
function gcd(a,b:integer):integer;
// Нахождение НОД
var
  i: longint;
begin
  while b <> 0 do begin
    a := a mod b;
    i := b; b := a; a := i
    end;
  Result:=a
end;

begin
  var a:=ReadInteger('a=');
  var b:=ReadInteger('b=');
  var nod:=gcd(a,b);
  if nod>1 then
    WritelnFormat('Дробь сократима: {0}/{1}={2}/{3}',
    a,b,a div nod,b div nod)
  else WritelnFormat('Дробь {0}/{1} несократима',a,b)
end.

Тестовое решение:
a= 23541
b= 335160
Дробь сократима: 23541/335160=59/840
kagurkina
//Pascal ABC.NET v3.0 сборка 1111

Const
 n=5;

Var
 ma:array[1..n,1..n] of integer;
 i,j:integer;
begin
 writeln('Matrix reading...');
 for i:=1 to n do
  begin
   writeln;
    for j:=1 to n do
      readln(ma[i,j]);
  end;
 writeln('First matrix:');
 for i:=1 to n do
  begin
   writeln;
    for j:=1 to n do
     begin
      write(ma[i,j]:4);
      if (ma[i,j]<-8) or (ma[i,j]>6) then ma[i,j]:=sqr(ma[i,j]);
     end;
  end;
 writeln;
 writeln('Final matrix:');
 for i:=1 to n do
  begin
   writeln;
    for j:=1 to n do
     write(ma[i,j]:4);
  end;
end.

Пример ввода:
1
2
3
4
5

6
7
8
9
1

2
3
4
5
6

7
8
9
1
2

3
4
5
6
7
Пример вывода:
First matrix:
   1   2   3   4   5
   6   7   8   9   1
   2   3   4   5   6
   7   8   9   1   2
   3   4   5   6   7
Final matrix:
   1   2   3   4   5
   6  49  64  81   1
   2   3   4   5   6
  49  64  81   1   2
   3   4   5   6  49

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Спрограммной на паскале, ) используя следующий фрагмент программы, опишите перечисленные ниже функции: type name = (аня, валя, женя, петя, саша, таня, шура, юра); information = record pol : (man, woman); height : 140..200 end; group = array [name] of information; а) функция средрост( гр ) определяет средний рост женщин из группы гр; б) функция высокий( гр ) определяет имя самого высокого мужчины из группы гр; в) логическая функция одинрост( гр ) проверяет, есть ли в группе гр хотя бы два человека одинакового роста.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Konstantin_Vadimirovich
iv1as2
denis302007
egoryandiana3727283
ustinovalubov6666
Zheleznyakova
Pastel-sova
zaretskaya37
nevori
dimon198808744
Михайлович Гуртовая929
miheev-oleg578
dmitrievanata83538
dovgash2
Радецкая264