Люди.Помогите!Пожалуйста.мне срочно нужно решение двух задач на C++: 1) задан массив целых чисел. определим подвектор, как один или несколько последовательных элементов массива. Каждому подвектору поставить в соответствие сумму его элементов. Требуется написать функцию, вычисляющую максимум из сумм подвекторов в массиве. 2) Предложить алгоритм получения всех перестановок целого числа N.
Basic. Задача следующая: В зависимости от выбора пользователя найти сумму четных или кратных трем элементов массива. Массив ввести с клавиатуры. я насоображал следующее: Code: 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 может кто выручит, а то не пойму что еще не так ...
Кто знает как решить : Круг радиусом R движется из центра екрана по СПИРАЛИ к границам екрана ! Реализовать нужно на С# с элементами графики ! Кто может - помогите ! С меня + !
Code: 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("Перемещение круга завершено"); } } } }
не пойму версию бейсика... похоже на qbasic, но несоответсвие в командах объявления массива. Для VB - другие ошибки. (там лучше использовать ReDim) Назови версию, я напишу тебе твою прожку
2 groupby : Слушай чето мне етот синтаксис не знаком ( На С++ можно туже задачу , ато добрую половину кода не пойму ! Да и для справки в чем ето было написано ???
помогите с лабой.. 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),random(255)); Canvas.LineTo(random(ClientWidth),random(ClientHeight)); 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. Выведите в качестве фона формы какую-либо битовую матрицу так, чтобы она занимала всю площадь формы. поставлю плюсы++
1. помогите? или "сделайте за меня"? 2. и много ты их поставишь с такой репой? сделай сам хоть что-нибудь, тогда будет смысл "помогать"
Кароч, есть ли какая нить winapi функция, возвращающая значение хранящаяся по определённому адресу? Нужно вобщем изучить файловую систему FAT Задание: Написать программу, которая показывает дампы. Исследовать изменение элементов BOOT, FAT, ROOT и DIR при работе с файлами(команд: COPY, MOVE, DEL, RENAME). Изучить алгоритм расположения файлов на диске и провести расчет цепочки кластеров для файла длиной не менее1кб. Кароч подобие WinHex!!)) Подскажите алгоритм... а то я не могу въехать с чего начать!! С++
это наверно очень жестокая программа... узнать содержимое ячейки памяти по ее адресу можно разыменовав указатель, содержащий этот адрес... Трудно понять что конкретно тебе надо. по поводу изучения FAT - если нужно то вот код программы, которая выводит список содержимого указанной директории в FAT32 через прямое обращение к диску а также проходит по цепочке кластеров файла чтобы подсчитать количество фрагментов. http://slil.ru/26306307
Народ... помогите плз нуно составить другу прогу на ассемблере.....собсно вот задание: и плюсег еще в круглешочке... сам я на ВБА и дельфи пишу... ничего тут непонимаю... разбираться долго.... а сдавать завтра....=( если поможите репы на кидаю и чем смогу помогу=) может пиго поставлю если близко живети ;-)
Алгоритм шифрования RSA Доброго времени суток друзья. У меня вот такая проблемка с задачей. Необходимо реализовать алгоритм шифрования RSA, т.е. шифрование и расшифровывание. Code: var Form1: TForm1; Fn,n,e,p,q,d:integer; implementation {$R *.dfm} [B]//наибольший общим делитель[/B] function nod(a,b:integer):integer; var i:integer; begin while a<>b do if a>b then a:=a-b else b:=b-a; result:=a; end; [B]//генерация ключей[/B] procedure TForm1.Button1Click(Sender: TObject); var i,k:integer; begin p:=strtoint(edit1.Text); q:=strtoint(edit2.Text); n:=p*q; Fn:=(p-1)*(q-1); for i:=2 to Fn do if nod(i,Fn)=1 then begin e:=i; break; end; k:=1; while (k*Fn+1)mod e<>0 do inc(k); d:=(k*Fn+1)div e; edit4.Text:='= '+inttostr(d); edit3.Text:='= '+inttostr(e); end; [B]//шифрование[/B] procedure TForm1.Button2Click(Sender: TObject); var s1,s:string; k,c,m,nn,i,j:integer; begin memo1.Clear; s:=Edit5.Text; c:=1 ; s1:=''; nn:=length(s); for i:=1 to nn do begin m:=(ord(s[i])-ord('A')) mod 26; c:=1 ; for j:=1 to e do c:=(c*m) mod n ; memo1.lines.add(inttostr(c)) ; c:=c mod 26; s1:=s1 + chr(c+ord('A')) ; end; Edit6.Text:=s1; end; [B]//дешифровка[/B] procedure TForm1.Button3Click(Sender: TObject); var s1,s:string; k,c,m,nn,i,j:integer; begin s:= Edit6.Text; //c:=1 ; s1:=''; nn:=length(s); for i:=1 to nn do begin m:=(ord(s[i])-ord('A')) mod 26; c:=1 ; for j:=1 to d do c:=(c*m) mod n ; memo1.lines.add(inttostr(c)) ; c:=c mod 26; s1:=s1 + chr(c+ord('A')) ; end; Edit7.Text:=s1; end; end. вот шифрование написано вроде правильно, но не работает ,и дешифровка - тоже. И в мемо выводит не правильно. Можете подсказать, где что изменить, в чем я ошибся?!
Пожалуйста, подскажите, как можно отобразить пересечение сферы с кубом в OpenGL с помощью буфера трафарета?
Может в выборе деятельности? Перепиши хотя бы с комментариями - функция зашифрования, функция расшифрования. Где ты ключевую пару генерируешь? /me кажется - это вааще не RSA =\
Благодарю за совет, обязательно попробую. Вы вместо того чтобы критиковать, помогли бы. Комменты отредактировал. Когда кажется креститься надо. Извените конечно за грубость. Это RSA, можно хотя по генерации ключей это понять.
Надо перевести кусок кода из C++ в C! спс заранее! long step(int i) { int g = 1; for(int j = 1; j<i; j++)g*=10; return g; } int main(int argc, char* argv[]) { int k; cin >> k; int l = k, g=1; while(l / 10 > 0) { l/=10; ++g; } int s1, s2; s1 = k/step(g) + (k/step(g-1) % 10); s2 = k %10 + (k/step(2))%10;