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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 08:32   #1
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
Восклицание Вращение ромбика в Си

Во общем хачу заставить вращаться ромбик...вокруг своей оси..
Код:
#include <stdlib.h>
#include <stdio.h>
int d1,d2;
int chiska() //не смог найти никак функцию типо CLS  (Basic) и чтобы возращала в координаты 0,0 курсор для Си
{
  int u;
  for (u=0;u<50;u++)
  {
    printf("\n");
  }
}
char romb(d1,d2) //ромбик
{
  int x01,i,x,y,z,x0,y0,z0;
  //d1=5;
  //d2=5;
  x=1;
  x01=0;
  y=(d2-x)/2;
  z=(d2-x)/2;
  // printf("%s%d%s%d%s%d\n","x=",x," y=",y," z=",z);
  for (i=0; i<d1; i++)
  {
    for(y0=0;y0<y;y0++)
    {
      printf("%s"," ");
    }
    for(x0=0;x0<x;x0++)
    {
      printf("%s","#");
    }
    for(z0=0;z0<z;z0++)
    {
      printf("%s"," ");
    }
    printf("\n");
    if (x01<d2)
    {
      x=x+2;
      y=y-1;
      z=z-1;
      x01=x;
    }
    else
    {
      x=x-2;
      y=y+1;
      z=z+1;
    }
  }
}

char romb2(d1,d2) //ромбик повернутый
{
  int x01,i,x,y,z,x0,y0,z0;
  //d1=5;
  //d2=5;
  x=1;
  x01=0;
  y=(d2-x);
  z=0;
  // printf("%s%d%s%d%s%d\n","x=",x," y=",y," z=",z);
  for (i=0; i<d1; i++)
  {
    for(y0=0;y0<y;y0++)
    {
      printf("%s"," ");
    }
    for(x0=0;x0<x;x0++)
    {
      printf("%s","#");
    }
    for(z0=0;z0<z;z0++)
    {
       printf("%s"," ");
    }
    printf("\n");
    if (x01<d2)
    {
       x=x+2;
       y=y-2;
      x01=x;
    }
    else
    {
    x=x-2;
    z=z+2;
    }
  }
}

main()
{
  int r,s;
  for (r=0; r<100000; r++) //по идее вот оно вращение только какоето корявое получаться..
  {
     romb(9,9);
     chiska();
     romb2(9,9);
    chiska();
  }
}
Заодно хотелось бы услышать ваше мнение по поводу написания кода... на читабельность, нагрузку.. и что возможно стоит делать по другому?

Последний раз редактировалось Stilet; 22.07.2009 в 08:48.
dampirik вне форума Ответить с цитированием
Старый 20.07.2009, 08:37   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Если честно - код отвратителен - не по содержанию, а по числу используемых комментариев . Внутренняя дисциплина - залог хорошего программного кода (а комментарии как правило пишутся для себя).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.07.2009, 08:41   #3
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

в данном случаи комментарии писались для простоты восприятия... где у меня возникли проблемы...для тех кто будет помогать...
dampirik вне форума Ответить с цитированием
Старый 20.07.2009, 08:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ваше мнение
1. Код компилится? Если нет то перечитай внимательно умные книги, и замени свою строчку на
Код:
char romb2(int d1,int d2)
Тоже самое для первой процедуры
2. Предлагаю:
Код:
#include <conio.h>
...
main()
{
 char c;
int r,s;
for (;c!=27;) //по идее вот оно вращение только какоето корявое получаться..
{
chiska();
romb(10,10);
 c=getch();
chiska();
romb2(10,10);
 c=getch();
}
}
3. Процедура Romb2 рисует черти ше...
4. Код оформлен нечитабельно. Много лишнего.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.07.2009, 13:28   #5
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
1. Код компилится?
ДА...только вращение...отсутствует

А вообще возможно сделать то что я задумал?на Си??и как...

Последний раз редактировалось Stilet; 20.07.2009 в 13:33.
dampirik вне форума Ответить с цитированием
Старый 20.07.2009, 13:38   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Конечно можно. Вот смотри примерный вариант действий:
Код:
//---------------------------------------------------------------------------

#pragma hdrstop

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
//---------------------------------------------------------------------------

#pragma argsused

void romb(int r,int r2,int r3){
 int i,n=r*r2,prob=r,sym=1;
 for (i = 0; i < r; i++) {
  for (int j = 0; j <prob; j++) {for (int t=0;t<r3;t++)printf(" ");};
  for (int j = 0; j <(2*sym); j++) {for (int t=0;t<r3;t++) printf("#");};
  for (int j = 0; j <prob; j++) {for (int t=0;t<r3;t++)printf(" ");};
  prob--;sym++;
  printf("\n");
 }
 for (i = 0; i <=r; i++) {
  for (int j = 0; j <prob; j++) {for (int t=0;t<r3;t++)printf(" ");};
  for (int j = 0; j <(2*sym); j++) {for (int t=0;t<r3;t++) printf("#");};
  for (int j = 0; j <prob; j++) {for (int t=0;t<r3;t++)printf(" ");};
  prob++;sym--;
  printf("\n");
 }
}

main()
{
 char c;
int r,s;
for (;c!=27;) // пока ESC не нажать
{
 romb(5,2,1);
 c=getch();
 romb(2,5,2);
 c=getch();
}
}
//---------------------------------------------------------------------------
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2009, 23:44   #7
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

#include <conio.h>
.. где бы ее взять... :-[ си linux а эта вроде мs-dos
dampirik вне форума Ответить с цитированием
Старый 22.07.2009, 08:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
где бы ее взять
Ну вместо getch примени scanf
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.07.2009, 21:47   #9
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Ну тут то да... просто в conio.h есть много вкусных функций..(типо CLS) которые иногда нужны... вот и хотелось бы узнать может под Linux есть аналог?
dampirik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение прямоугольника Ponaroshku Паскаль, Turbo Pascal, PascalABC.NET 11 03.11.2009 09:22
Вращение прямоугольника Ponaroshku Общие вопросы Delphi 0 25.05.2009 23:09
вращение треугольника в С++ bum90 Помощь студентам 3 28.04.2009 15:28
Вращение в DirectX Pedro Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 31.03.2009 21:37
Вращение элипса lacost Мультимедиа в Delphi 3 19.12.2008 13:41