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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2011, 20:05   #1
Imche
Новичок
Джуниор
 
Регистрация: 12.09.2011
Сообщений: 2
Печаль Ошибки в программе

Здравствуйте, помогите пожалуйста пофиксить ошибки:
84: error: cannot convert `request' to `request*' for argument `1' to `void gen(request*)'
87: error: cannot convert `request' to `request*' for argument `3' to `void make_line(int, int, request*)'
90: error: cannot convert `request' to `request*' for argument `1' to `void sorting_up(request*)'
110: error: cannot convert `request' to `request*' for argument `1' to `void sorting_down(request*)'
Возможно наличие других ошибок, ибо я новичек
Использовал для написания данной ереси Dev-c++ 4.9.9.2
Суть программы:
Модель управления считыванием m блоков информации с диска. Каждый из блоков состоит из n секторов, располагающихся на одной и той же дорожке, но необязательно друг за другом. Первоначально программа генерирует всю последовательность m запросов на блоки, при этом каждый запрос состоит из следующих случайным образом сформированных величин: Nc и n номеров секторов. Затем программа выбирает длину очереди обслуживания k =2, 4, 8, …, 512 обслуживает поочередно всю последовательность и подсчитывает время доступа. Метод обработки блоков C-SCAN.
Программа:
Код:
#include <iostream.h>
#include <conio.h>
#include <cstdlib>
const
int C=2048,H=1,S=63,t0=6,m=2048,v=9,n=32;
float a=0.01,t1=0.1;
struct request
{
       int ncr;
       int ns[n];
};
int random(int a)  
{
    const float scale=rand()/float(S);
    return int(scale*a + 0.5);
};
void gen(request rq[m])
{
    for(int i=1;i<m;i++)
    {
            rq[i].ncr=random(C);
            for(int j=1;j<n;j++)
            {
                    rq[i].ns[j]=random(S);
            }
    }
};
void sorting_up(request rq[m])
{
     bool flag=true;
     while(flag)
     {
                flag=false;
                for(int k=1;k<m-1;k++)
                {
                        if (rq[k].ncr>rq[k+1].ncr)
                        {
                            request buf=rq[k];
                            rq[k]=rq[k+1];
                            rq[k+1]=buf;
                            flag=true;
                        }
                }
     }
};
void sorting_down(request rq[m])
{
     bool flag=true;
     while(flag)
     {
                flag=false;
                for(int k=1;k<m-1;k++)
                {
                        if (rq[k].ncr<rq[k+1].ncr)
                        {
                            request buf=rq[k];
                            rq[k]=rq[k+1];
                            rq[k+1]=buf;
                            flag=true;
                        }
                }
     }
};
void make_line(int k,int x,request rq[m])
{
     request line[k];
     for(int i=x;i<k+x;i++)
     {
         for(int j=i;j<k;j++)
         {
                 line[j]=rq[i];
         }
     }
};
int main()
{
    int k,x1,z=1;
    cout<<"k= ";
    cin>>k;
    float t[k],T[m/k],tt[n],TIME;
    bool f;
    x1=k;
    request r[m],l[k];
    gen(r[m]);
    while(x1<m)
    {          
               make_line(k,x1,r[m]);
               if(f=true)
               {
                  sorting_up(l[k]);
                  for(int i=1;i<k;i++)
                  {
                         float th=a*l[i].ncr;
                          for(int j=1;j<n;j++)
                          {
                                  tt[i]=tt[i]+0.1875*l[i].ns[j];
                          }
                          t[i]=th+tt[i];
                  }
                  T[z]=0;
                  for(int i=1;i<k;i++)
                     {
                          T[z]=T[z]+t[i];
                     }
                  f=false;
                  z++;
               }
               else
               {
                  sorting_down(l[k]);
                  for(int i=1;i<k;i++)
                  {
                          float th=a*l[i].ncr;
                          for(int j=1;j<n;j++)
                          {
                                  tt[i]=tt[i]+6/63*l[i].ns[j];
                          }
                          t[i]=th+tt[i];
                  }
                  T[z]=0;
                  for(int i=1;i<k;i++)
                     {
                          T[z]=T[z]+t[i];
                     }
                  f=true;
                  z++;
               }
               x1=x1+k;
    }
    for(int i=1;i<z;i++)
    {TIME=TIME+T[i];}
    cout<<"K= "<<k<<"TIME= "<<TIME<<endl;
    getch();
    return 0;
};

Последний раз редактировалось Imche; 12.09.2011 в 20:08.
Imche вне форума Ответить с цитированием
Старый 12.09.2011, 21:48   #2
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Тут не следовало приводить весь ваш код, так как сообщения об ошибках вполне понятны, и говорят сами за себя.

Ваши функции требуют в качестве аргумента указатель на request, то есть request *, а вы передаете значение объекта request вместо указателя на этот объект.

Например, в вашем коде вы пишите

request r[m],l[k];
gen(r[m]);

то есть вы в фукнцию gen передаете 'm'-ный элемент массива вместо самого массива. Следовало по крайней мере синтаксически писать

request r[m],l[k];
gen( r) ;
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 13.09.2011, 21:05   #3
Imche
Новичок
Джуниор
 
Регистрация: 12.09.2011
Сообщений: 2
По умолчанию

Действительно, спасибо! Теперь постараюсь быть более внимательным
Imche вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки в программе Andersen1313 Общие вопросы C/C++ 3 04.12.2010 09:51
ошибки в программе ShadowAGT Помощь студентам 8 27.09.2010 20:54
Ошибки в программе! Ivanito Общие вопросы C/C++ 3 15.05.2010 20:01
ошибки в программе по С++ Игорь11071990 Помощь студентам 2 20.01.2010 14:22
ошибки в программе gralex10 Помощь студентам 0 16.12.2009 00:37