1

Тема: Знайти суму ряда чисел.

Дано Type IM=(Анна, Володимир, Тетяна, Юрій, Микола, Володимир);
gr=record
стать=(чол, жін);
зріст: 140..160;
end;
Описати функцію, яка визначає середній зріст жінок у групі. Допоможіть будьласка!

2

Re: Знайти суму ряда чисел.

Ви щось уже пробували робити? На чому спіткнулися?

3

Re: Знайти суму ряда чисел.

Не пробував... Мені крім цього завдання ще 7 потрібно зробити на завтра, ось и прошу допомоги....

4

Re: Знайти суму ряда чисел.

program lab;
Const
    N = 2;
Type 
    TGender = (MAN, WOOMAN);
    TAge = 140..160;
    TRecord = record
        name: String;
        gender: TGender;
        age: TAge;
    end;
Var
    i: integer;
    sum, count: integer;
    records: array [1..N] of TRecord;
    
begin
    for i := 1 to N do
    begin
        writeln('Record ', i);
        writeln('Name[', i, ']:');
        readln(records[i].name);
        writeln('Gender[', i, '] (Man or Wooman):');
        readln(records[i].gender);
        writeln('Age[', i, '] (From 140 to 160):');
        readln(records[i].age);
    end;
    
    sum := 0;
    count := 0;
    for i := 1 to N do
    begin
        if records[i].gender = WOOMAN then
        begin
            sum := sum + records[i].age;
            inc(count);
        end;
    end;
    
    if count = 0 then
        writeln('No woomen in records')
    else
        writeln('Avg age = ', (sum / count):2:1);
end.
Подякували: Stroncickiy1

5

Re: Знайти суму ряда чисел.

Error 64: Cannot Read or Write variables of this type.

readln(records[i].gender);

Що це??

Re: Знайти суму ряда чисел.

howlvolcano написав:

Error 64: Cannot Read or Write variables of this type.

readln(records[i].gender);

Що це??

Це помилка :D
Неможливо зчитати та записати у змінну цього типу.

7

Re: Знайти суму ряда чисел.

Це під час компіляції чи під час вводу даних?

Re: Знайти суму ряда чисел.

Replace написав:

Це під час компіляції чи під час вводу даних?

Думаю що під час вводу, оскільки юзер міг ввести не ті дані, ну а оскільки перевірки на правильність немає, тому програма і вилітає з помилкою.

9

Re: Знайти суму ряда чисел.

під час компіляції!

10

Re: Знайти суму ряда чисел.

howlvolcano
Ну помилка, ну так виправте її! Зробіть щоб ввід символу "w" означав WOOMAN, а "m" - MAN. Впораєтеся?

Подякували: Replace1

11

Re: Знайти суму ряда чисел.

Перевірив на Geany, компілюється успішно:

fpc "безіменний.pas" (у теці: /home/vpn)
Free Pascal Compiler version 2.6.0-6 [2012/10/05] for x86_64
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling безіменний.pas
Linking безіменний
/usr/bin/ld: попередження: link.res містить розділи виведення даних; не забули параметр -T?
44 lines compiled, 0.4 sec
Компіляція була успішною.

12

Re: Знайти суму ряда чисел.

У мене теж fpc, тому все скомпілювалось і працює.

13

Re: Знайти суму ряда чисел.

Аналогічно попробував у себе на fpc, теж працює.

Compilation finished successfully.

А от на Turbo Pascal помилка.

14

Re: Знайти суму ряда чисел.

Судячи з опису завдання, тут взагалі PascalABC може бути.
Автор, то чим ви користуєтеся?

15

Re: Знайти суму ряда чисел.

Тепер на Turbo Pascal компілюється.

    program lab;
    Const
    N = 2;
    Type
    TGender = (MAN, WOOMAN);
    TAge = 140..160;
    TRecord = record
    name: String;
    gender: TGender;
    age: TAge;
    end;
    Var
    sex: string; {для тих хто не знає, sex - від анг стать}
    i: integer;
    sum, count: integer;
    records: array [1..N] of TRecord;
    begin
    for i := 1 to N do
    begin
    writeln('Record ', i);
    writeln('Name[', i, ']:');
    readln(records[i].name);
    writeln('Gender[', i, '] (Man or Wooman):');
    readln(sex);
    if(sex = 'MAN')
    then
    records[i].gender:=MAN
    else
    records[i].gender:=WOOMAN;
    writeln('Age[', i, '] (From 140 to 160):');
    readln(records[i].age);
    end;
    sum := 0;
    count := 0;
    for i := 1 to N do
    begin
    if records[i].gender = WOOMAN then
    begin
    sum := sum + records[i].age;
    inc(count);
    end;
    end;
    if count = 0 then
    writeln('No woomen in records')
    else
    writeln('Avg age = ', (sum / count):2:1);
    end.

P.S: ідея Torbins.
P.P.S: на форматування не дивіться, це ctrl+c , ctrl+v

Подякували: howlvolcano, Voron2

16

Re: Знайти суму ряда чисел.

Користуюсь Турбо, но вже перейду на АБЦ. Люди, хто ще зможе допомгти з цим дурним паскалем - в пм будь ласка. А то до екзамену не допустять.... Можу навіть якось віддячити

17

Re: Знайти суму ряда чисел.

Програма від Хантера працює.

18 Востаннє редагувалося howlvolcano (20.01.2013 18:08:08)

Re: Знайти суму ряда чисел.

Replace написав:

Програма від Хантера працює.

Чесно кажучи я в паскалі повний нуль.... Так, що, друзі, потрібна ваша допомога....
Запустив - працює начебто. Але можу задавати умову тільки для двух людей Анни и Валентини, а по умові потрібно 6 людей. І ось цей рядок "writeln('No woomen in records')" не видає коли пишу 2 чоловіків

19 Востаннє редагувалося Адріян Ігорович (20.01.2013 18:52:44)

Re: Знайти суму ряда чисел.

howlvolcano написав:
Replace написав:

Програма від Хантера працює.

Чесно кажучи я в паскалі повний нуль.... Так, що, друзі, потрібна ваша допомога....
Запустив - працює начебто. Але можу задавати умову тільки для двух людей Анни и Валентини, а по умові потрібно 6 людей. І ось цей рядок "writeln('No woomen in records')" не видає коли пишу 2 чоловіків

А якщо так:

     program lab;
    Const
    N = 6;
    Type
    TGender = (MAN, WOOMAN);
    TAge = 140..160;
    TRecord = record
    name: String;
    gender: TGender;
    age: TAge;
    end;
    Var
    sex: string; {для тих хто не знає, sex - від анг стать}
    i: integer;
    sum, count: integer;
    records: array [1..N] of TRecord;
    begin
    for i := 1 to N do
    begin
    writeln('Record ', i);
    writeln('Name[', i, ']:');
    readln(records[i].name);
    writeln('Gender[', i, '] (Man or Wooman):');
    readln(sex);
    if(sex = 'MAN')
    then
    records[i].gender:=MAN
    else
    records[i].gender:=WOOMAN;
    writeln('Age[', i, '] (From 140 to 160):');
    readln(records[i].age);
    end;
    sum := 0;
    count := 0;
    for i := 1 to N do
    begin
    if records[i].gender = WOOMAN then
    begin
    sum := sum + records[i].age;
    inc(count);
    end;
    end;
    if count = 0 then
    writeln('No woomen in records')
    else
    writeln('Avg age = ', (sum / count):2:1);
    end.
Подякували: Voron1

20

Re: Знайти суму ряда чисел.

Hanter написав:
howlvolcano написав:
Replace написав:

Програма від Хантера працює.

Чесно кажучи я в паскалі повний нуль.... Так, що, друзі, потрібна ваша допомога....
Запустив - працює начебто. Але можу задавати умову тільки для двух людей Анни и Валентини, а по умові потрібно 6 людей. І ось цей рядок "writeln('No woomen in records')" не видає коли пишу 2 чоловіків

А якщо так:

     program lab;
    Const
    N = 6;
    Type
    TGender = (MAN, WOOMAN);
    TAge = 140..160;
    TRecord = record
    name: String;
    gender: TGender;
    age: TAge;
    end;
    Var
    sex: string; {для тих хто не знає, sex - від анг стать}
    i: integer;
    sum, count: integer;
    records: array [1..N] of TRecord;
    begin
    for i := 1 to N do
    begin
    writeln('Record ', i);
    writeln('Name[', i, ']:');
    readln(records[i].name);
    writeln('Gender[', i, '] (Man or Wooman):');
    readln(sex);
    if(sex = 'MAN')
    then
    records[i].gender:=MAN
    else
    records[i].gender:=WOOMAN;
    writeln('Age[', i, '] (From 140 to 160):');
    readln(records[i].age);
    end;
    sum := 0;
    count := 0;
    for i := 1 to N do
    begin
    if records[i].gender = WOOMAN then
    begin
    sum := sum + records[i].age;
    inc(count);
    end;
    end;
    if count = 0 then
    writeln('No woomen in records')
    else
    writeln('Avg age = ', (sum / count):2:1);
    end.

Оце воно! Дякую)
З.І: Є питання, в пм відпишу.

Подякували: Stroncickiy1