Воскресенье, 27.07.2025, 23:53
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
ОПАМ Основы Программирования и Алгоритмические Языки
slashovantonДата: Четверг, 15.01.2009, 12:22 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 109
Награды: 0
Репутация: 0
Статус: Offline
Turbo C++ 3.0

Задания лабораторных работ. В комментариях решение некоторых вариантов и подсказки.


Решение вопросов:

    Как скопировавши с сайта программу на паскале, поместить её в паскаль?
    Как в готовой программе набирать на русском языке?
    Тут

Задания курсового проекта по ОПАМ.


"Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать"
"Мы в ответе за тех, кого вовремя не послали"
"Готовтесь! завтра будет хуже, но интересней"
 
slashovantonДата: Суббота, 16.05.2009, 17:01 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 109
Награды: 0
Репутация: 0
Статус: Offline
BC-7
Code
/*
  Программа для ввода/вывода вектора и матрицы
  Replacement - Заполняет вектором главную диагональ матрицы
*/
#include<stdio.h>
//===========================================================================================================
void New(unsigned long &n,const char *sNameVector=NULL)
{
  printf("%s[n]\n",sNameVector);
  printf("n=");    scanf("%d",&n);// Строк
}
//===========================================================================================================
void New(unsigned long &n,unsigned long &m,const char *sNameArray=NULL)
{
  printf("%s[n][m]\n",sNameArray);
  printf("n=");    scanf("%d",&n);// Строк
  printf("m=");    scanf("%d",&m);// Столбцов
}
//===========================================================================================================
void New(         // Вводит вектор
  float    **ppfVector,  // Адрес вектора
  const unsigned long    n,     // Количество строк вектора (если = 0 то удаляет вектор)
  const char   *sNameVector=NULL)    // Имя вектора (Если указанно то вектор вводится с клавиатуры)
{
  register unsigned long i;
  if((*ppfVector)!=NULL)
  {
   // Освобождение памяти
   delete [] (*ppfVector);
   (*ppfVector)=NULL;
  }
  if(n>0)
  {
   // Динамическое выделение памяти
   (*ppfVector)=new float[n];// Cтроки
   if(sNameVector!=NULL)
   {
    // Ввод
    for(i=0;i<n;i++)// Cтроки
    {
     printf("%s[%d]=",sNameVector,i);
     scanf("%f",&(*ppfVector)[i]);
    }
    printf("\n");
   }
  }
}
//===========================================================================================================
void New(         // Вводит матрицу
  float    ***pppfArray,  // Адрес матрицы
  const unsigned long n,     // Количество строк матрицы
  const unsigned long m,     // Количество столбцов матрицы
  const char   *sNameArray=NULL)    // Имя матрицы (Если указанно то матрица вводится с клавиатуры)
{
  register unsigned long i,j;
  if((*pppfArray)!=NULL)
  {
   // Освобождение памяти
   for(i=0;i<n;i++)
    delete [] (*pppfArray)[i];
   delete [] (*pppfArray);
   (*pppfArray)=NULL;
  }
  if(n>0 && m>0)
  {
   // Динамическое выделение памяти
   (*pppfArray)=new float*[n];// Cтолбец указателей
   for(i=0;i<n;i++)
    (*pppfArray)[i]=new float[m];// Cтроки
   if(sNameArray!=NULL)
   {
    // Ввод
    for(i=0;i<n;i++)// Строки
     for(j=0;j<m;j++)// Столбцы
     {
      printf("%s[%d][%d]=",sNameArray,i,j);
      scanf("%f",&(*pppfArray)[i][j]);
     }
    printf("\n");
   }
  }
}
//===========================================================================================================
void Print(const unsigned long iNumber)// Выводит идентификатор
{
  printf("Laboratory work BC-%d\n",iNumber);
  printf("The student of group PZ-08-1\n");
  printf("Slashov Anton\n");
  printf("Variant 17\n\n");
}
//===========================================================================================================
void Print(
  float    *pfVector,
  const unsigned long    n,
  const char   *sNameVector)
{
  register unsigned long i;
  if(pfVector!=0)
  {
   // Вывод массива
   printf("%s={ ",sNameVector);
   for(i=0;i<n;i++)// Строки
   {
     printf("%.2f ",pfVector[i]);
   }
   printf("}\n\n");
  }
}
//===========================================================================================================
void Print(
  float    **ppfArray,
  const unsigned long    n,
  const unsigned long    m,
  const char   *sNameArray)
{
  register unsigned long i,j;
  if(ppfArray!=0)
  {
   // Вывод массива
   printf("%s=\n",sNameArray);
   for(i=0;i<n;i++)// Строки
   {
    for(j=0;j<m;j++)// Столбцы
     printf("\t%.2f",ppfArray[i][j]);
    printf("\n");
   }
   printf("\n");
  }
}
//===========================================================================================================
void Replacement(         // Заполняет вектором главную диагональ матрицы
  float    *pfVector,   
  const unsigned long    Vn,
  float    **ppfArray,  
  const unsigned long An,      
  const unsigned long Am)
{
  register unsigned long n,i;
  n=An<Am ? An : Am;
  n= n<Vn ?  n : Vn;
  for(i=0;i<n;i++)
  {
   ppfArray[i][i]=pfVector[i];
  }
}
//===========================================================================================================
void main()
{
  float *Vec=NULL,**Arr=NULL;// Обнулять обязательно!
  unsigned long Vn,An,Am;
  Print(7);
  // Создание   Заполнение
  New(Vn,"Vector");    New(&Vec,Vn,"Vector");
  New(An,Am,"Array");    New(&Arr,An,Am,"Array");
  // Распечатка
  Print(Vec,Vn,"Vector");
  Print(Arr,An,Am,"Array");
  // Замена
  Replacement(Vec,Vn,Arr,An,Am);
  // Распечатка
  Print(Vec,Vn,"Vector");
  Print(Arr,An,Am,"Array");
  // Удаление
  New(&Vec,0);
  New(&Arr,0,0);
}


"Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать"
"Мы в ответе за тех, кого вовремя не послали"
"Готовтесь! завтра будет хуже, но интересней"
 
slashovantonДата: Вторник, 16.06.2009, 17:30 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 109
Награды: 0
Репутация: 0
Статус: Offline
BC-8
Code
#include<stdio.h>
//==================================
void New(unsigned long &n,const char *sNameVector)
{
  printf("%s[n]\n",sNameVector);
  printf("n=");    scanf("%d",&n);// Строк
}
//==================================
void New(         // Вводит вектор
  float    **ppfVector,  // Адрес вектора
  const unsigned long    n,     // Количество строк вектора (если = 0 то удаляет вектор)
  const char   *sNameVector=NULL)    // Имя вектора (Если указанно то вектор вводится с клавиатуры)
{
  register unsigned long i;
  if((*ppfVector)!=NULL)
  {
   // Освобождение памяти
   delete [] (*ppfVector);
   (*ppfVector)=NULL;
  }
  if(n>0)
  {
   // Динамическое выделение памяти
   (*ppfVector)=new float[n];// Cтроки
   if(sNameVector!=NULL)
   {
    // Ввод
    for(i=0;i<n;i++)// Cтроки
    {
     printf("%s[%d]=",sNameVector,i);
     scanf("%f",&(*ppfVector)[i]);
    }
    printf("\n");
   }
  }
}
//==================================
void Print(const unsigned long iNumber)// Выводит идентификатор
{
  printf("Laboratory work BC-%d\n",iNumber);
  printf("The student of group PZ-08-1\n");
  printf("Slashov Anton\n");
  printf("Variant 17\n\n");
}
//==================================
void Print(
  float    *pfVector,
  const unsigned long    n,
  const char   *sNameVector)
{
  register unsigned long i;
  if(pfVector!=0)
  {
   // Вывод массива
   printf("%s={ ",sNameVector);
   for(i=0;i<n;i++)// Строки
   {
     printf("%.2f ",pfVector[i]);
   }
   printf("}\n\n");
  }
}
//==================================
void Func( float *m,const unsigned long    n)
{
  register unsigned long i,k=0;
  float s=0;
  for(i=0;i<n;i++)
   if(m[i]>0)
   {
    s+=m[i];
    k++;
   }
  if(k>0)
  {
   s/=k;
   for(i=0;i<n;i++)
    if(m[i]<0)
     m[i]=s;
  }
}
//==================================
void main()
{
  float *Vec=NULL,**Arr=NULL;// Обнулять обязательно!
  unsigned long Vn,An,Am;
  Print(8);
  // Создание   Заполнение
  New(Vn,"Vector");    New(&Vec,Vn,"Vector");
  // Распечатка
  Print(Vec,Vn,"Vector");
  // Замена
  Func(Vec,Vn);
  // Распечатка
  Print(Vec,Vn,"Vector");
  // Удаление
  New(&Vec,0);
}


"Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать"
"Мы в ответе за тех, кого вовремя не послали"
"Готовтесь! завтра будет хуже, но интересней"
 
  • Страница 1 из 1
  • 1
Поиск: