HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 10.05.2009, 09:22
Sibogatov
Познающий
Регистрация: 24.11.2008
Сообщений: 40
С нами: 9190279

Репутация: 0
По умолчанию

вот код скажите плиз че не так?:

Код:
#include <windows.h>
#include <string.h>
#include <time.h>
#include <math.h>

#define ID_TIMER    1
#define TWOPI       (2 * 3.14159)

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char szAppName[] = "AnaClock" ;
     HWND        hwnd;
     MSG         msg;
     WNDCLASSEX  wndclass ;

	 wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = NULL ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
	 wndclass.hIconSm       = NULL ;

     RegisterClassEx (&wndclass) ;

     hwnd = CreateWindow (szAppName, "Analog Clock",
                          WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          NULL, NULL, hInstance, NULL) ;

     if (!SetTimer (hwnd, ID_TIMER, 1000, NULL))
          {
          MessageBox (hwnd, "Too many clocks or timers!", szAppName,
                      MB_ICONEXCLAMATION | MB_OK) ;
          return FALSE ;
          }

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }

void SetIsotropic (HDC hdc, int cxClient, int cyClient)
     {
     SetMapMode (hdc, MM_ISOTROPIC) ;
     SetWindowExtEx (hdc, 1000, 1000, NULL) ;
     SetViewportExtEx (hdc, cxClient / 2, -cyClient / 2, NULL) ;
     SetViewportOrgEx (hdc, cxClient / 2,  cyClient / 2, NULL) ;
     }

void RotatePoint (POINT pt[], int iNum, int iAngle)
     {
     int   i ;
     POINT ptTemp ;

     for (i = 0 ; i < iNum ; i++)
          {
          ptTemp.x = (int) (pt[i].x * cos (TWOPI * iAngle / 360) +
                            pt[i].y * sin (TWOPI * iAngle / 360)) ;

          ptTemp.y = (int) (pt[i].y * cos (TWOPI * iAngle / 360) -
                            pt[i].x * sin (TWOPI * iAngle / 360)) ;

          pt[i] = ptTemp ;
          }
     }

void DrawClock (HDC hdc)
     {
     int   iAngle ;
     POINT pt[3] ;

     for (iAngle = 0 ; iAngle < 360 ; iAngle += 6)
          {
          pt[0].x =   0 ;
          pt[0].y = 900 ;

          RotatePoint (pt, 1, iAngle) ;

          pt[2].x = pt[2].y = iAngle % 5 ? 33 : 100 ;

          pt[0].x -= pt[2].x / 2 ;
          pt[0].y -= pt[2].y / 2 ;

          pt[1].x  = pt[0].x + pt[2].x ;
          pt[1].y  = pt[0].y + pt[2].y ;

          SelectObject (hdc, GetStockObject (BLACK_BRUSH)) ;

          Ellipse (hdc, pt[0].x, pt[0].y, pt[1].x, pt[1].y) ;
          }
     }

void DrawHands (HDC hdc, struct tm *datetime, BOOL bChange)
     {
     static POINT pt[3][5] = { 0, -150, 100, 0, 0, 600, -100, 0, 0, -150,
                               0, -200,  50, 0, 0, 800,  -50, 0, 0, -200,
                               0,    0,   0, 0, 0,   0,    0, 0, 0,  800 } ;
     int          i, iAngle[3] ;
     POINT        ptTemp[3][5] ;

     iAngle[0] = (datetime->tm_hour * 30) % 360 + datetime->tm_min / 2 ;
     iAngle[1] =  datetime->tm_min  *  6 ;
     iAngle[2] =  datetime->tm_sec  *  6 ;

     memcpy (ptTemp, pt, sizeof (pt)) ;

     for (i = bChange ? 0 : 2 ; i < 3 ; i++)
          {
          RotatePoint (ptTemp[i], 5, iAngle[i]) ;

          Polyline (hdc, ptTemp[i], 5) ;
          }
     }

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     static int         cxClient, cyClient ;
     static struct tm   dtPrevious ;
     BOOL               bChange ;
     HDC                hdc ;
     PAINTSTRUCT        ps ;
     time_t             lTime ;
     struct tm         *datetime ;

     switch (iMsg)
          {
          case WM_CREATE :
               time (&lTime) ;
               datetime = localtime (&lTime) ;

               dtPrevious = * datetime ;
               return 0 ;

          case WM_SIZE :
               cxClient = LOWORD (lParam) ;
               cyClient = HIWORD (lParam) ;
               return 0 ;

          case WM_TIMER :
               time (&lTime) ;
               datetime = localtime (&lTime) ;

               bChange = datetime->tm_hour != dtPrevious.tm_hour ||
                         datetime->tm_min  != dtPrevious.tm_min ;

               hdc = GetDC (hwnd) ;

               SetIsotropic (hdc, cxClient, cyClient) ;

               SelectObject (hdc, GetStockObject (WHITE_PEN)) ;
               DrawHands (hdc, &dtPrevious, bChange) ;

               SelectObject (hdc, GetStockObject (BLACK_PEN)) ;
               DrawHands (hdc, datetime, TRUE) ;

               ReleaseDC (hwnd, hdc) ;

               dtPrevious = *datetime ;
               return 0 ;

          case WM_PAINT :
               hdc = BeginPaint (hwnd, &ps) ;

               SetIsotropic (hdc, cxClient, cyClient) ;
               DrawClock    (hdc) ;
               DrawHands    (hdc, &dtPrevious, TRUE) ;

               EndPaint (hwnd, &ps) ;
               return 0 ;

          case WM_DESTROY :
               KillTimer (hwnd, ID_TIMER) ;
               PostQuitMessage (0) ;
               return 0 ;
          }
     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
     }
 
Ответить с цитированием

  #2  
Старый 12.05.2009, 12:26
LLlOK
Новичок
Регистрация: 09.05.2009
Сообщений: 2
С нами: 8951098

Репутация: 0
По умолчанию

помогите плс

задали вот такое задание в Делфи: написать программу расчитывающаю количество дней,часов,минут,секунд между двумя датами, заданными в формате например 12.01.2009 14:37:59 и системной датой, временем... расчёт должен вестись по всем правилам, с учётом високосных годов....

и если можно плиз с пояснениями.....
 
Ответить с цитированием

  #3  
Старый 10.05.2009, 14:09
ah_liza_liza
Новичок
Регистрация: 08.05.2009
Сообщений: 8
С нами: 8952904

Репутация: 0
По умолчанию

массив X1,X2,...,Xn попадает на заданный отрезок
Координатами x,y заданы n точек плоскости.
Найти:
• процент точек, удаление которых от начала координат больше заданной величины r и притом обе координаты положительны;
• среднее удаление всех точек от начала координат.

Заранее благодарю
=*
 
Ответить с цитированием

  #4  
Старый 10.05.2009, 14:12
ah_liza_liza
Новичок
Регистрация: 08.05.2009
Сообщений: 8
С нами: 8952904

Репутация: 0
По умолчанию

з.ы.
должна быть программа с заглушками.
 
Ответить с цитированием

  #5  
Старый 10.05.2009, 17:40
pixelm
Познающий
Регистрация: 04.01.2008
Сообщений: 43
С нами: 9658941

Репутация: 20
По умолчанию

Помогите пожалуйста , чтобы работало через Trubo C.

Реализовать команду, переставляющую местами первую и последнюю записи данного файла, состоящего из записей заданной длины.
 
Ответить с цитированием

  #6  
Старый 11.05.2009, 09:45
Mosvit
Познающий
Регистрация: 05.03.2007
Сообщений: 99
С нами: 10097277

Репутация: 44
По умолчанию

Помогите решить, кому не сложно
Программа на C

3.Написать подпрограмму сортировки 2-мерного массива целых по строкам (использовать сумму значений строки), сохранив эти значения в главной диагонали массива.
 
Ответить с цитированием

  #7  
Старый 11.05.2009, 15:59
Тилль
Познающий
Регистрация: 26.05.2006
Сообщений: 33
С нами: 10504627

Репутация: 2
По умолчанию

Напишите в чем ошибка в предпоследней строчке! Если поставить вместо "а" "3" в предпоследней строке то работает, а так нет, как сделать?
#include<iostream>
using namespace std;


template<class T> T sum(T m, int n) {return m+n;}


template<class T> T sum(T* a, int size)
{
T s = 0;
for(int i=0; i<size; ++i)
s+=a[i];
return s;
}

int main()
{
cout<<sum(1,2)<<endl;
int a[]={1,2,3};

cout<<sum(3,3)<<endl;
return 0;
}
 
Ответить с цитированием

  #8  
Старый 12.05.2009, 13:57
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами: 9185589

Репутация: 128
По умолчанию

Цитата:
Сообщение от Тилль  
Напишите в чем ошибка в предпоследней строчке! Если поставить вместо "а" "3" в предпоследней строке то работает, а так нет, как сделать?
#include<iostream>
using namespace std;


template<class T> T sum(T m, int n) {return m+n;}


template<class T> T sum(T* a, int size)
{
T s = 0;
for(int i=0; i<size; ++i)
s+=a[i];
return s;
}

int main()
{
cout<<sum(1,2)<<endl;
int a[]={1,2,3};

cout<<sum(3,3)<<endl;
return 0;
}
Ты передал литерал вместо указателя в первом параметре в обоих случаях использования функции sum.
Не совсем понял вопрос. Функция ждет от тебя указатель, зачем тебе передавать ей тройку, вместо него? Какую из двух перегруженных функций ты хотел использовать?
Программа будет работать в обоих случаях, потому что подставляется перегруженная функция, которая удовлетворяет переданным параметрам (их типам)

Последний раз редактировалось ss88; 12.05.2009 в 14:06..
 
Ответить с цитированием

  #9  
Старый 12.05.2009, 13:54
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами: 9185589

Репутация: 128
По умолчанию

Цитата:
Сообщение от Mozy  
2 Тилль

У меня на Microsoft Visual Studio 2008 всё работает
ниодной ошибки не выдаёт
Visual Studio.... это же мутант.... Стандарты? Да он ест их на завтрак, обед и ужин.
Так что о правильности написания кода нельзя судить по словам этого демона
 
Ответить с цитированием

  #10  
Старый 12.05.2009, 23:06
R1der23
Новичок
Регистрация: 28.07.2008
Сообщений: 25
С нами: 9361230

Репутация: 0
По умолчанию

мм.. привет всем.. начали изучать делфи. столкнулся с первой проблемой.. препод сказал нестандартная задача.. как не пробовал не получается.. не совсем понимаю именно сути задачи.. если можно помогите решить.. и будет супер если будет пара комментов.. вот собственно сама задача

Задачка по Делфи.
Суммирование рядов.
для заданного положительного Е и заданного х выччслить сумму ряда с точностью Значение параметра m, входящего в некоторые варианты, вводится с клавнатуры. Суммирование ряда завершается, если модуль очередного слагаемого меньше Е. Значение суммы сравнить с соответствующим значением в левой части равенства. действительные типы объявить ехtended. Предусмотреть ограничение количества слагаемых ряда для предотвращения <зацикливанию> программы.

(1-x)^(-m)=1+m*x+[m*(m+1)/2!]*x^2+[m*(m+1)(m+2)/3!]*x^3+.... |x|<1; m>0
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.