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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2014, 22:37   #1
Dima9595
 
Регистрация: 10.04.2014
Сообщений: 7
По умолчанию Ошибка в коде

Ребят, помогите пожалуйста! Программа должна подсчитать среднее значение всех групп за все экзамены и вывести в конце все ср. знач, но выводит только последнее среднее значение.Не работает конкретно эта строка(красным цветом)и в дело, наверно, в функции(красным цветом). Заранее благодарен!
Код:
Program qq;
Uses CRT;
Var a,h,r,i,k,j,q,count,u: integer;

     sr,sr1,sr2: real;
     mas: array[1..100]of real;

procedure pr(k:integer;
             var a,
                 count:integer);
var i: byte;
   oc:integer;
 begin
      a:=0;
      count:=0;
   For i:=1 to k do
      begin
         write('студент ',i, ' = ');
         readln(oc);
           a:=a+oc;
         if oc < 3 then count:=count+1;
      end;
 end;

function fc2(a,
              b:integer
              ):real;
 begin
  h:=1;
  begin
  mas[h]:=a/b;
  fc2:=mas[h];
  end;
 end;
Begin
Clrscr;
write('сколько групп в потоке? ');
readln(r);
for i:=1 to r do
begin
k:=0;
write('сколько студентов учится в',i,' группе? ');
readln(k);
end;
 write('Сколько экзаменов сдают студенты в сессию? ');
  readln(a);
Clrscr;
  Begin
    for i:=1 to r do
      for j:=1 to a do
    begin
     writeln('введите оценки ',i,' группы за',j,' экзамен');

             pr(k,q,count);

             writeln('не сдало ',count);


    writeln('среднее значение = ', fc2(q,k):4:1);
     end;
     end;
     u:=r*a;
   for i:=1 to u do writeln('',mas[h]:4:1);
    readln;
  end.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.04.2014 в 08:52.
Dima9595 вне форума Ответить с цитированием
Старый 11.04.2014, 15:02   #2
yaschenko
Пользователь
 
Аватар для yaschenko
 
Регистрация: 29.03.2014
Сообщений: 26
По умолчанию

Код:
function fc2(a,
              b:integer
              ):real;
 begin
  h:=1;
  begin
  mas[h]:=a/b; // Здесь вы всегда записываешь значение в 1 ячейку массива т.к. h- у вас равна 1
  fc2:=mas[h];
  end;
 end;
Код:
for i:=1 to u do writeln('',mas[h]:4:1); //здесь вы выводите всегда первый элемент массива т.к. переменная h у вас равна 1 
Вот так работает корректно (Если я правильно понял что вы хотели сделать)

Код:
Program qq;
Uses CRT;
Var a,h,r,i,k,j,q,count,u: integer;

     sr,sr1,sr2: real;
     mas: array[1..100]of real;

procedure pr(k:integer;
             var a,
                 count:integer);
var i: byte;
   oc:integer;
 begin
      a:=0;
      count:=0;
   For i:=1 to k do
      begin
         write('студент ',i, ' = ');
         readln(oc);
           a:=a+oc;
         if oc < 3 then count:=count+1;
      end;
 end;

function fc2(a,
              b,elem:integer
              ):real;
 begin
  h:=1;
  begin
  mas[elem]:=a/b;
  fc2:=mas[elem];
  end;
 end;
Begin
Clrscr;
write('сколько групп в потоке? ');
readln(r);
for i:=1 to r do
begin
k:=0;
write('сколько студентов учится в',i,' группе? ');
readln(k);
end;
 write('Сколько экзаменов сдают студенты в сессию? ');
  readln(a);
Clrscr;
  Begin
    for i:=1 to r do
      for j:=1 to a do
    begin
     writeln('введите оценки ',i,' группы за',j,' экзамен');

             pr(k,q,count);

             writeln('не сдало ',count);


    writeln('среднее значение = ', fc2(q,k,i):4:1);
     end;
     end;
     u:=r*a;
   for i:=1 to u do writeln('',mas[i]:4:1);
    readln;
  end.
Зеленым цветом в коде помечены добавления.
Отладка - это процесс осознания того, что программа делает только то, что ты написал, а не то, что ты хотел написать.

Последний раз редактировалось yaschenko; 11.04.2014 в 15:08.
yaschenko вне форума Ответить с цитированием
Старый 11.04.2014, 16:49   #3
Dima9595
 
Регистрация: 10.04.2014
Сообщений: 7
По умолчанию

Да!Спасибо большое!
Dima9595 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка в коде Sylar9 Win Api 5 24.03.2012 20:38
Ошибка в коде Анастас Общие вопросы Delphi 8 25.10.2011 21:59
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
C#, ошибка в коде StudentPolitech Общие вопросы .NET 3 19.09.2010 21:34