Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 23 • Страница 1 из 21  2  >
  Версия для печати (полностью) Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Member
Статус: Не в сети
Регистрация: 29.04.2008
Откуда: Москва
Фото: 0
Тут проблема мужики!!! У меня завтра жэкзамен в универе. И дали на д/р задачки по С++. Я как истинный овер пробухал всё и вся, теперь что делать не знаю. Вся надежда на вас! однофорусмчане :)

1)Массив
В двумерном массиве 8 на 6 поменять местами левую! и правую половину


2) используя ф-ыю найти наименьший НОК элементов одномерного масива длтной 8! элементов


3)Дан прямоугольник (координаты левого верхнего и правого нижнего углов) и треугольник (координаты вершин). Определить, находится ли треугольник целиком в прямоугольнике.
Стороны прямоугольника параллельны осям координат.


4)В магазин "стройматериалы" в течении 6ти суток поступили товары 12ти наименований. Известны наименование каждого вида товара,его цена и кол-во товара, поступившего в течение каждого дня. Вывести на экран стоимость поступивших за 6 дней товара каждого вида. Создать структуру в глобальной области и использовать ее при написании программы. Для хранения данных использовать массив. Конец =)))


Последний раз редактировалось hardware 10.01.2009 11:29, всего редактировалось 1 раз.


Партнер
 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 05.04.2003
Откуда: дровишки?
по человечески сочувствую, мне на 11 число надо 5 контрольных по английскому: грамматика\практика\фонетики и еще чешуя разная :(

_________________
Люди больше не услышат наши юные смешные голоса..


 

Member
Статус: Не в сети
Регистрация: 29.04.2008
Откуда: Москва
Фото: 0
Scotty
во-во, такаеже жопа! а через 2 дня экзамен по матАнализу!!!!!!!!!!!


 

Member
Статус: Не в сети
Регистрация: 06.09.2006
Откуда: Ростов-на-Дону
Гы. Давно хотел Си вспомнить. Попробую через пару часиков накрапать че-нить.

_________________
MSI GE70 2PL APACHE: Intel Core i7-4710HQ, 2.5 GHz, 2 x 8GB DDR3L-1600 MHz, mSata Plextor 6m6 128GB SSD+1GB WD Caviar Blue (5400RPM), Geforce GTX 850M


 

Member
Статус: Не в сети
Регистрация: 21.08.2005
БЭТмент писал(а):
1)Массив В двумерном массиве 8 на 6 поменять местами левую! и правую половину

так пойдёт ? #77
Добавлено спустя 1 минуту, 39 секунд
Bogy а хорошо знакомы были ? мож и мне чем поможете :roll:


 

Member
Статус: Не в сети
Регистрация: 06.09.2006
Откуда: Ростов-на-Дону
Да был нормально знаком, а вот в 2008-й студии чет никак iostream подключить не могу :D

_________________
MSI GE70 2PL APACHE: Intel Core i7-4710HQ, 2.5 GHz, 2 x 8GB DDR3L-1600 MHz, mSata Plextor 6m6 128GB SSD+1GB WD Caviar Blue (5400RPM), Geforce GTX 850M


 

Member
Статус: Не в сети
Регистрация: 21.08.2005
Bogy да мне в Borland C++ 3.1 :roll: надобна


 

Member
Статус: Не в сети
Регистрация: 24.09.2006
Цитата:
Я как истинный овер пробухал всё и вся
истинные оверы не бухают, не позорь то, к чему не относишься
БЭТмент и уж точно истинные оверы в состоянии сделать твои задачи, а ты просто очередной ****


 

Member
Статус: Не в сети
Регистрация: 29.04.2008
Откуда: Москва
Фото: 0
matriks
Типа оскорбил, ага :)
FAINT
чтото на истину не похоже ))


 

Member
Статус: Не в сети
Регистрация: 21.08.2005
БЭТмент писал(а):
чтото на истину не похоже ))

а как должно быть ?


 

Member
Статус: Не в сети
Регистрация: 06.09.2006
Откуда: Ростов-на-Дону
Накракозябрил первые 2 задачки. Си вспомнил :tooth: :tooth: :tooth:
Остальные 2 сам сделаешь, ибо полной халявы не бывает ;)

Заголовочный файлик:
Код:
#include<iostream.h>
#include<conio.h>

class MyArray
{
public:
   MyArray()
   {
      CreateArray();
   }

   ~MyArray(void)
   {
   }

   int myArray[8][6];   // для первого задания
   int my1DArray[8];      // для второго задания

   void ArrayChange()
   {
      clrscr();
      cout << "changing..." << endl << endl;

      int tmp;
      for(int i = 0; i < 8; i++)
      {
         for(int j = 0;j < 3;j++)
         {
            tmp = myArray[i][j];
            myArray[i][j] = myArray[i][j + 3];
            myArray[i][j + 3] = tmp;
         }
      }
      cout << "Ok.Press any key...";
      getch();
   }


   void Print()
   {
      clrscr();
      cout << "Print:" << endl;
      for(int i = 0; i < 8; i++)
      {
         for(int j = 0; j < 6; j++)
         {
            cout << myArray[i][j] << "\t";
         }
         cout << endl << endl;
      }
      cout << endl << "Press any key...";
      getch();
   }
   void Print2(int res)
   {
      clrscr();
      cout << "NOK : " << res << endl << endl << "Print:" << endl;
      for(int i = 0; i < 8; i++)
      {
         cout << my1DArray[i] << "\t";
      }
      cout << endl << "Press any key...";
      getch();
   }
   int getNOK()
   {
      return array_NOK(my1DArray);
   }
   
private:
   void CreateArray()
   {
      for(int i = 0; i < 8; i++)
      {
         my1DArray[i] = i + 1;
         for(int j = 0; j < 6; j++)
         {
            myArray[i][j] = (i + 1) * 10 + j + 1;
         }
      }
   }
   
   int NOD(int n1, int n2)   // нахождение наибольшего общего делителя для 2-х натуральных чисел
   {
      int res = n1 % n2;
      while (res != 0)
      {
         n1 = n2;
         n2 = res;
         res = n1 % n2;
      }
      return n2;
   }
   int NOK(int n1, int n2) // нахождение наименьшего общего кратного для двух натуральных чисел
   {
      return n1 * n2 / NOD(n1, n2);
   }
   int array_NOK(int mass[8])
   {
      int res = mass[0];
      for(int i = 1; i < 8; i++)
      {
         res = NOK(res, mass[i]);
      }
      return res;
   }
};





И типа основной:
Код:
#include "MyArray.h"
#include <iostream.h>
#include <conio.h>
#include <stdio.h>

void Printmenu()
{
   clrscr();
   cout<<"\n\n\t1   -  Array Change Task"<<endl;
   cout<<"\t2   -  Array NOK Task"<<endl;
   cout<<"\t3   -  Geometric Task"<<endl;
   cout<<"\t4   -  Market Task"<<endl;
   cout<<"\tEsc -  Exit"<<endl;
}

void FirstMenu()
{
   char key;
   MyArray mass;
   do
   {
      clrscr();
      cout<<"\n\n\tArray change "<<endl;
      cout<<"\t1   -  Change"<<endl;
      cout<<"\t2   -  Print"<<endl;
      cout<<"\tEsc -  Back"<<endl;
      key = getch();
      switch(key)
      {
       case 49:
         mass.ArrayChange();
           break;
       case 50:
         mass.Print();
           break;
      };
   } while(key!=27);
}

void SecondMenu()
{
   char key;
   MyArray mass;
   int res = mass.getNOK();
   do
   {
      clrscr();
      cout<<"\n\n\tArray NOK "<<endl;
      cout<<"\t1   -  Print"<<endl;
      cout<<"\tEsc -  Back"<<endl;
      key = getch();
      switch(key)
      {
         case 49:
            mass.Print2(res);
            break;
      };
   } while(key!=27);
}

void ThirdMenu()
{
}

void ForthMenu()
{
}


int main()
{
   char key;
   do
   {
      Printmenu();
      key=getch();
      switch(key)
      {
         case 49: FirstMenu();break;
         case 50: SecondMenu();break;
         case 51: ThirdMenu();break;
         case 52: ForthMenu();break;
      };
   }
   while(key!=27);
 return 0;
}

Добавлено спустя 19 минут, 1 секунду
FAINT, катсти, на Turbo C++ наваял, так что и на борланде скомпилится - там разницы нет в синтаксисе.

_________________
MSI GE70 2PL APACHE: Intel Core i7-4710HQ, 2.5 GHz, 2 x 8GB DDR3L-1600 MHz, mSata Plextor 6m6 128GB SSD+1GB WD Caviar Blue (5400RPM), Geforce GTX 850M


 

Member
Статус: Не в сети
Регистрация: 22.01.2006
Откуда: Москва
Bogy
Ты думаешь, что автор топика знает классы? Я сильно в этом сомневаюсь.
И зачем работать с массивом, когда можно с указателями?


 

Member
Статус: Не в сети
Регистрация: 29.04.2008
Откуда: Москва
Фото: 0
Bogy
спасибо!!!!!!!!!!! вот это да! неожидал!!!!!!!!! спасибище!!!!!
FAINT хз, я тупой ))


 

Member
Статус: Не в сети
Регистрация: 21.08.2005
БЭТмент писал(а):
хз, я тупой ))

глянь что выводит первое задание от Bogy... а то аж мне интересно стало... чего я не понял


 

Member
Статус: Не в сети
Регистрация: 06.09.2006
Откуда: Ростов-на-Дону
mp5master
Цитата:
Ты думаешь, что автор топика знает классы? Я сильно в этом сомневаюсь.
И зачем работать с массивом, когда можно с указателями?

С классами возможно погорячился. Хотя если пишут на Си, то должно быть ООП. Как тут без классов. А если структурное программирование, то думаю на Паскале бы ваяли. Просто привык уже к C# за полтора года. Отупляет он малость, но приучает к объектному программированию :)
А насчет массивов - так это просто удобнее, т.к. не надо память ручками выделять( calloc,malloc и т.д.). А по сути тот же указатель, просто [] дают более удобную адресацию по размеру типа элемента.

FAINT
Скопируй код да откомпиль - там все просто. Выводит на экран как и у тебя. Т.е. 8 строк и 6 столбцов, порядок элементов тот же, но первые три столбца стали последними. Написано конечно коряво, но извиняйте. Я полтора года на Navision писал, потом на Perl, а сейчас к C# привык. На Си ваял аж года 3 назад - драйвер-фильтр для файловой системы писали с другом. Так что тут на скорую руку кое-как. Если чел хоть немного на Сях писал, то просто красоту наведет и допишет еще 2 задания. :)

_________________
MSI GE70 2PL APACHE: Intel Core i7-4710HQ, 2.5 GHz, 2 x 8GB DDR3L-1600 MHz, mSata Plextor 6m6 128GB SSD+1GB WD Caviar Blue (5400RPM), Geforce GTX 850M


 

Member
Статус: Не в сети
Регистрация: 24.09.2006
БЭТмент писал(а):
У меня завтра жэкзамен в универе.

и
БЭТмент писал(а):
пробухал всё и вся

и
БЭТмент писал(а):
я тупой ))
без комментариев


 

Member
Статус: Не в сети
Регистрация: 21.08.2005
Bogy писал(а):
Написано конечно коряво, но извиняйте.

сильно "вумно" :) я так сделал
Код:
for (i=0;i<8; i++)
{
for (j=3;j<6; j++)
cout << a[i][j] << " ";
for (j=0;j<3; j++)
cout << a[i][j] << " ";
cout << "\n";
}

прилично короче и объясняется на пальцах


 

Member
Статус: Не в сети
Регистрация: 06.09.2006
Откуда: Ростов-на-Дону
Так тут то элементы матрицы не меняются. Ты просто выводишь их в том порядке, что был бы, поменяй ты половины массива местами, но фактически местами ты эти половины не меняешь. :)

_________________
MSI GE70 2PL APACHE: Intel Core i7-4710HQ, 2.5 GHz, 2 x 8GB DDR3L-1600 MHz, mSata Plextor 6m6 128GB SSD+1GB WD Caviar Blue (5400RPM), Geforce GTX 850M


 

Member
Статус: Не в сети
Регистрация: 21.08.2005
Bogy писал(а):
Так тут то элементы матрицы не меняются.

я по самому лёгкому пути :D
Просто при таком условии задачи вполне может прокатить


 

Member
Статус: Не в сети
Регистрация: 29.04.2008
Откуда: Москва
Фото: 0
вот первая задачка
Код:
#include <vcl.h>
#pragma hdrstop

#include <stdio.h>
#include <conio.h>
//---------------------------------------------------------------------------
#pragma argsused
//---------------------------------------------------------------------------
void ArrayInput();
void ArrayOffset();
void ArrayPrint();
//---------------------------------------------------------------------------
int Array[8][6];

int main(int argc, char* argv[])
{
        ArrayInput();
        ArrayPrint();
        ArrayOffset();
        ArrayPrint();

        return 0;
}
//---------------------------------------------------------------------------
void ArrayInput()
{
        for(int i = 0; i < 8; i++)
        {
                for(int j = 0; j < 6; j++)
                {
                        printf("Array[%d][%d]: ", i + 1, j + 1);
                        scanf("%d", &Array[i][j]);
                }
        }
}
//---------------------------------------------------------------------------
void ArrayOffset()
{
        int Buffer[3];

        for(int i = 0; i < 8; i++)
        {
                Buffer[0] = Array[i][0];
                Buffer[1] = Array[i][1];
                Buffer[2] = Array[i][2];

                Array[i][0] = Array[i][3];
                Array[i][1] = Array[i][4];
                Array[i][2] = Array[i][5];

                Array[i][3] = Buffer[0];
                Array[i][4] = Buffer[1];
                Array[i][5] = Buffer[2];
        }
}
//---------------------------------------------------------------------------
void ArrayPrint()
{
        for(int i = 0; i < 8; i++)
        {
                printf("%5d %5d %5d %5d %5d %5d\n\n\n", Array[i][0], Array[i][1], Array[i][2], Array[i][3], Array[i][4], Array[i][5]);
        }

        getch();
}


а вот вторая
Код:
# include <iostream>
using namespace std;
int main ()
{
NOK_otv = NOK(m[0], m[1]);
for (i = 2; i < 8; i++)
NOK_otv = NOK(NOK_otv, m[i]);
}
return(0);
endl;

Решали лучшие умы рунета!
FAINT писал(а):
for (i=0;i<8; i++) { for (j=3;j<6; j++) cout << a[i][j] << " "; for (j=0;j<3; j++) cout << a[i][j] << " "; cout << "\n"; }

а вот это красиво! :)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 23 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Leshiy2371 и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan