Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

24.10.2008, 22:04
|
|
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
Провел на форуме: 1027635
Репутация:
234
|
|
Держи!
Код:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string get_binary(int a)
{
string res = "";
while(a)
{
res += a%2+'0';
a /= 2;
}
reverse(res.begin(), res.end());
return res;
}
int main()
{
int a;
cin >> a;
cout << get_binary(a) << endl;
return 0;
}
|
|
|

28.10.2008, 16:36
|
|
Новичок
Регистрация: 26.10.2008
Сообщений: 9
Провел на форуме: 25836
Репутация:
4
|
|
Люди.Помогите!Пожалуйста.м е срочно нужно решение двух задач на C++:
1) задан массив целых чисел. определим подвектор, как один или несколько последовательных элементов массива. Каждому подвектору поставить в соответствие сумму его элементов. Требуется написать функцию, вычисляющую максимум из сумм подвекторов в массиве.
2) Предложить алгоритм получения всех перестановок целого числа N.
|
|
|

28.10.2008, 18:52
|
|
Познающий
Регистрация: 23.01.2007
Сообщений: 33
Провел на форуме: 223619
Репутация:
24
|
|
Basic.
Задача следующая:
В зависимости от выбора пользователя найти сумму четных или кратных трем элементов массива. Массив ввести с клавиатуры.
я насоображал следующее:
Код:
print "1. summa chetnix elementov massiva"
print "2. summa kratnix trem elementov massiva"
print "vash vibor"
A$=input$(1)
If (A$="1") then
print "summa chetnix elementov massiva"
do
input "vvedite razmer massiva N"; N
If (N<=0) or (int(N)<>N) then print "net resheniy"
loop while (N<=0) or (int(N)<>N)
Dim (A)
for i=1 to N
print "Vvedite";i;"-i element massiva";
input A(i)
next i
summa=0
for i=1 to N
if A(i) mod 2=0 then
summa=summa+A(i)
end if
next i
for i=1 to N
print A(i);
next i
print "summa chetnix elementov massiva"; summa
Else If (A$="2") then
print "summa kratnix trem elementov massiva"
do
input "vvedite razmer massiva N"; N
If (N<=0) or (int(N)<>N) then print "net resheniy"
loop while (N<=0) or (int(N)<>N)
Dim (A)
for i=1 to N
print "Vvedite";i;"-i element massiva";
input A(i)
next i
summa=0
for i=1 to N
if A(i) mod 3=0 then
summa=summa+A(i)
end if
next i
for i=1 to N
print A(i);
next i
print "summa kratnix trem elementov massiva"; summa
выдает ошибку IF
может кто выручит, а то не пойму что еще не так ...
|
|
|

29.10.2008, 15:33
|
|
Участник форума
Регистрация: 31.10.2007
Сообщений: 213
Провел на форуме: 394522
Репутация:
14
|
|
Кто знает как решить :
Круг радиусом R движется из центра екрана по СПИРАЛИ к границам екрана !
Реализовать нужно на С# с элементами графики !
Кто может - помогите ! С меня + !
|
|
|

30.10.2008, 20:19
|
|
Познающий
Регистрация: 21.09.2008
Сообщений: 42
Провел на форуме: 127017
Репутация:
61
|
|
Сообщение от 043nKRuT0y
Кто знает как решить :
Круг радиусом R движется из центра екрана по СПИРАЛИ к границам екрана !
Реализовать нужно на С# с элементами графики !
Кто может - помогите ! С меня + !
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace CircleMoving
{
public partial class Form1 : Form
{
const int m_Radius = 100;
const int m_Addition = 4;
const int m_SmallCircleRadius = m_Radius / 2;
int m_StartPositionX;
int m_StartPositionY;
int m_SpiralX;
int m_SpiralY;
bool m_Sign = true;
List<Point> m_LastPoints;
public Form1()
{
InitializeComponent();
m_StartPositionX = this.Width / 2 - m_Radius / 2;
m_StartPositionY = this.Height / 2 - m_Radius / 2;
m_SpiralX = 0;
m_SpiralY = 0;
m_LastPoints = new List<Point>();
}
private void timer1_Tick(object sender, EventArgs e)
{
m_StartPositionX++;
m_StartPositionY++;
if (m_Sign)
m_SpiralX += m_Addition;
else
m_SpiralX -= m_Addition;
m_SpiralY = (int)Math.Sqrt(
Math.Pow(m_SmallCircleRadius, 2) - Math.Pow(m_SpiralX, 2)
);
this.Invalidate();
if (m_SpiralX + m_Addition >= m_SmallCircleRadius)
m_Sign = false;
if (m_SpiralX - m_Addition <= 0)
m_Sign = true;
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Point m_LastPoint = Point.Empty;
foreach (Point m_Point in m_LastPoints)
{
if(m_LastPoint == Point.Empty)
g.DrawEllipse(new Pen(Color.DarkSlateBlue), m_Point.X, m_Point.Y, 1, 1);
else
g.DrawLine(new Pen(Color.DarkSlateBlue), m_LastPoint, m_Point);
m_LastPoint = m_Point;
}
g.DrawEllipse(
new Pen(Color.DarkRed),
new Rectangle(
m_StartPositionX + m_SpiralX - m_SmallCircleRadius,
m_StartPositionY + m_SpiralY - m_SmallCircleRadius,
m_Radius,
m_Radius
)
);
m_LastPoints.Add(new Point(
m_StartPositionX + m_SpiralX - m_SmallCircleRadius + m_Radius / 2,
m_StartPositionY + m_SpiralY - m_SmallCircleRadius + m_Radius / 2
));
if ((m_LastPoints[m_LastPoints.Count - 1].X + m_Radius / 2 == this.Width)
||
(m_LastPoints[m_LastPoints.Count - 1].Y + m_Radius / 2 == this.Height))
{
timer1.Stop();
timer1.Enabled = false;
timer1.Dispose();
MessageBox.Show("Перемещение круга завершено");
}
}
}
}
|
|
|

30.10.2008, 20:57
|
|
Постоянный
Регистрация: 15.07.2008
Сообщений: 444
Провел на форуме: 1417964
Репутация:
665
|
|
Сообщение от prox1kk
Basic.
Задача следующая:
В зависимости от выбора пользователя найти сумму четных или кратных трем элементов массива. Массив ввести с клавиатуры.
я насоображал следующее:
...
не пойму версию бейсика...
похоже на qbasic, но несоответсвие в командах объявления массива.
Для VB - другие ошибки.
(там лучше использовать ReDim)
Назови версию, я напишу тебе твою прожку
Последний раз редактировалось lisa99; 30.10.2008 в 21:39..
|
|
|

31.10.2008, 20:08
|
|
Участник форума
Регистрация: 31.10.2007
Сообщений: 213
Провел на форуме: 394522
Репутация:
14
|
|
2 groupby :
Слушай чето мне етот синтаксис не знаком ( На С++ можно туже задачу , ато добрую половину кода не пойму !
Да и для справки в чем ето было написано ???
|
|
|

01.11.2008, 16:09
|
|
Новичок
Регистрация: 21.06.2008
Сообщений: 2
Провел на форуме: 10671
Репутация:
3
|
|
помогите с лабой..
1. Рисование на канве формы с использованием пиксельной графики и графических примитивов
1. Создать фон формы с плавным переходом от одного цвета к другому.
2. Используя пиксельную графику и графические примитивы, вывести на форму произвольный рисунок.
3. Выполнить простую анимацию следующими методами:
a) С использованием randomize, random ( ) и компонента TTimer (стр. VCL System);
Пример 1
procedure TForm1.Timer1Timer(Sender: TObject);
var x,y:integer;
begin
randomize;
x:=Form1.ClientWidth div 2;
y:=Form1.ClientHeight div 2;
Canvas.MoveTo(x,y);
Canvas.Pen.Color:=RGB(random(255),random(255),rand om(255));
Canvas.LineTo(random(ClientWidth),random(ClientHei ght));
end;
procedure TForm1.FormMouseMove(……);
begin
Application.Terminate;
end;
Пример 2 (анимация объекта TShape)
Такая анимация достаточно проста, так как весь код рисования и перерисования скрыт в объекте. Например, чтобы заставить объект TShape перемещаться по горизонтали, нужно просто изменять свойство Shape1.Left.
b) Используя свойство пера Pen.Mode.
Режим Pen.Mode=pmNotXor или Pen.Mode=pmXor предназначен для рисования движущихся фигур. Если два раза нарисовать одну и ту же фигуру таким пером, то после первого раза она появится, после второго – сотрется.
Пример
Rectangle(x0,y0,x,y);
pause:=time;
while (time-pause)<1E-12 do;
Rectangle(x0,y0,x,y);
c) Анимацию можно организовать, если “стереть” фигуру прямоугольником с цветом фона:
procedure TForm2.Button1Click(Sender: TObject);
var rr:real;
angle,i,j,x,y:integer;
begin
for i:=1 to 5 do begin
angle:=random(368);
rr:=Angle*Рi/180;
for j:=1 to 100 do begin
x:=trunc(j*sin(rr))+100;
y:=trunc(j*cos(rr))+100;
with Form2.Canvas do begin
Вrush.Color:=clВlue;
Еllipse(x-16,y-16,x+16,y+16);
Вrush.Color:= clBtnFace;
Rectangle(0,0,Form2.ClientWidth,Form2.ClientHeight );end;
end; end; end;
К сожалению, такой метод дает сильное мерцание на экране.
d) Использование двойной буферизации для анимации.
Двойной буфер – это набор плоскостей, одна из которых используется для отображения на экране (это может быть канва формы или компонента TPaintBox), а другая – для рисования (это может быть компонент TBitMap или другой компонент TPaintBox). Использование двойного буфера позволяет получить плавное движениепри анимации и отсутствие мерцания, но уменьшает скорость движения фигуры.
Пример
procedure TForm3.Button1Click(Sender: TObject);
var rr:real;
angle,i,j,x,y:integer;
TheBitmap:TBitmap;
begin
TheBitmap:=TBitmap.Create;
TheBitmap.Height:=Form3.ClientHeight;
TheBitmap.Width:=Form3.ClientWidth;
for i:=1 to 10 do begin
angle:=random(368);
rr:=Angle*pi/180;
for j:=1 to 100 do begin
x:=trunc(j*sin(rr))+100;
y:=trunc(j*cos(rr))+100;
with TheBitmap.Canvas do begin
Brush.Color:= clBtnFace;
Rectangle(0,0,Width,Height);
Brush.Color:=clblue;
Ellipse(x-16,y-16,x+16,y+16);
Form1.Canvas.CopyRect(Rect(0,0,Width,Height),
TheBitmap.Canvas,
Rect(0,0,Width,Height));
end; end; end; end;
Выполните данную процедуру, а затем на ее основе напишите свой код анимации с двойным буфером.
4. Выведите в качестве фона формы какую-либо битовую матрицу так, чтобы она занимала всю площадь формы.
поставлю плюсы++
|
|
|

02.11.2008, 02:34
|
|
Постоянный
Регистрация: 15.07.2008
Сообщений: 444
Провел на форуме: 1417964
Репутация:
665
|
|
Сообщение от omen-6-6-6
помогите с лабой..
поставлю плюсы++
1. помогите? или "сделайте за меня"?
2. и много ты их поставишь с такой репой?
сделай сам хоть что-нибудь, тогда будет смысл "помогать"
|
|
|

04.11.2008, 21:46
|
|
Познающий
Регистрация: 21.09.2008
Сообщений: 42
Провел на форуме: 127017
Репутация:
61
|
|
Сообщение от 043nKRuT0y
2 groupby :
Слушай чето мне етот синтаксис не знаком ( На С++ можно туже задачу , ато добрую половину кода не пойму !
Да и для справки в чем ето было написано ???
Ты че бля, дебил?
Твои слова? :
Сообщение от 043nKRuT0y
Реализовать нужно на С# с элементами графики!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|