superboy4..покопался в твоем коде, честно, не особо понял что там написано написал с нуля, вот код, прокоментил все, чтобы было понятно, если что-то все равно не понятно, спрашивай Code: unit Enciphering; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Button1: TButton; StringGrid1: TStringGrid; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const n = 1000; // длина строки dif = 224; // разница между символами в ASCII var Form1: TForm1; key, tex: string; tqu, kqu: integer; rez: string; tx: set of 'а'..'я'; tnum, knum, code: array [1..n] of integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin tex:=Edit1.Text; // Для текста key:=Edit2.Text; // Для ключа rez:=''; // Наш ответ tqu:=length(tex); // Длина текста kqu:=length(key); // Длина ключа for i:=1 to length(tex) do tnum[i]:=-1; // Исключение инородных сиволов for i:=1 to length(tex) do knum[i]:=0; // Обнуление code:=knum; for i:=1 to tqu do if tex[i] in tx then tnum[i]:=ord(tex[i]) - dif; // Нахождение порядкового номера в алфавите (отсчет от 0 до 30) for i:=1 to kqu do knum[i]:=ord(key[i]) - dif; for i:=kqu + 1 to tqu do knum[i]:=knum[i - kqu]; // Дополнение ключа в случае если его длина меньше длины строки for i:=1 to tqu do if tnum[i]<> -1 then code[i]:=(tnum[i] + knum[i]) mod 32 else code[i]:=ord(' ')-dif; // Само шифрование for i:=1 to tqu do rez:= rez + chr(code[i] + dif); // Получение ответа stringgrid1.ColCount:=tqu+1; for i:=1 to tqu do StringGrid1.Cells[i, 0]:=tex[i]; for i:=1 to tqu do StringGrid1.Cells[i, 1]:=rez[i]; // Вывод ответа end; end.
начал осваивать Visual Basic и появился такой вопрос. Почему после изменения размеров кнопки при загрузке формы при каждом выполнении программы форма меняет свои координаты расположения на экране?выстраивая их как будто каскадом. код состоит всего из 3-х строк: Code: Private Sub Form_Load() Randomize Command1.Height = 2625 * Rnd Command1.Width = 3360 * Rnd End Sub
при данных условиях задача не имеет единственного решения! Маленькие кружки с радиусом R3 могут свободно перемещаться обеспечивая касание как с большой R1 так и с малой R2 окружностями при R1=R2+R3 .... при этом площадь будет меняться! при R1<R2+R3 можно решить но нужны координаты центров R3 при R1>R2+R3 НЕТ РЕШЕНИЙ Уточни задачу!
pi := 3.14; S := pi(( (sqr(r1)+sqr(r2))/2) - sqr(r3)); Это если предположить что окружности находяться на одной линии.
но я же использую рандом для задания координат кнопки а не формы,почему оно на форму влияет не пойму...=\
так как r2-r1=2*r3 то из этого следует что центры лежат на одной прямой, если бы было не так тогда окружности не могли бы пересекаться... значит площадь будет вычисляться по формуле: s=pi*(r1^2/2+r2^2/2-r3^2)
что то типа такого: PHP: program qasdf; const pi:=3.14; r1:=25; r2:=15; r3:=5; var s:integer; begin s:=pi*(sqr(r1)/2+sqr(r2)/2-sqr(r3)); writeln(s); readln; end. хотя лучше без ввода вручную... иначе придется проверять на соприкосновение окружностей
Code: program sq; var r1,r2,r3:real; function square(r1,r2,r3:real):real; begin square:=pi*((r1*r1)/2+(r2*r2)-(r3*r3)*2); end; begin write('radius 1 '); readln(r1); write('radius 2 '); readln(r2); write('radius 3 '); read(r3); write('square is ',square(r1,r2,r3):1:2); end.
Задача 1 Дан массив целых чисел состоящий из 100000 чисел. Написать многопоточное приложение которое на 10 процессах вычислит: Сумму отрицательных элементов массива. Задача 2 Написать многопоточное приложение которое на 10 процессах реализует задачу: Дана матрица размера M × N. Найти количество ее столбцов, элементы которых упорядочены по убыванию. М=100000 N=50000 Язык С++ с MPI.
Помогите, пожалуйста. То ли я торможу, то ли лыжи не едут. Задание: Инициализировать массив, который содержит целые числа. Переписать парные и непарные числа в разные массивы. Оформить это действие в виде процедуры с формальными параметрами. - В делфи Вот то что я наваяла, подскажите, пожалуйста, ошибку: program Project1; {$APPTYPE CONSOLE} uses SysUtils; type Mas=array [1..10] of integer; Mas1=array [1..10] of integer; Mas2=array [1..10] of integer; procedure Proc(i:integer; M:Mas; M1:Mas; M2:Mas2); begin for i:=1 to 10 do if M mod 2 =0 then M:=M1 else M:=M2; end; var M:Mas; M1:Mas; M2:Mas2; i:integer; begin M[1]:=2; M[2]:=6; M[3]:=9; M[4]:=11; M[5]:=17; M[6]:=10; M[7]:=19; M[8]:=23; M[9]:=13; M[10]:=1; proc ( i, M, M1, M2); for i:=1 to 10 do Write (M1); for i:=1 to 10 do Writeln(M2); readln; end.
че то я не догнал... в условии парные.... а в программе ищешь четные и не четные.... по подробнее плиз ну и если разбираться в самом коде то: PHP: if M[i] mod 2 =0 then M[i]:=M1[i] else M[i]:=M2[i]; скорее всего нужно изменить так: PHP: if M[i] mod 2 =0 then M1[i]:=M[i] else M2[i]:=M[i]; и еще по поводу этого... если при i=1 будет четное число, то например записываем его в M1 дальше при i=2 нечетное число то его записываем в M2 и получается что он будет под 2 номером! а под первым будет 0.....это как бэ тоже не гуд! лучше измени на это: PHP: k=1; l=1; for i:=1 to 10 do if M[i] mod 2 =0 then M1[k]:=M[i] and k=k+1 else M2[l]:=M[i] and l=l+1; end; PHP: for i:=1 to 10 do Write (M1[i]); for i:=1 to 10 do Writeln(M2[i]); тогда уж везде пиши Writeln для перехода на новую строку... или Write чтоб подряд писались и после проделанного получаем код: PHP: program Project1; {$APPTYPE CONSOLE} uses SysUtils; type Mas=array [1..10] of integer; Mas1=array [1..10] of integer; Mas2=array [1..10] of integer; procedure Proc(i:integer; M:Mas; M1:Mas; M2:Mas2); begin k=1; l=1; for i:=1 to 10 do if M[i] mod 2 =0 then M1[k]:=M[i] and k=k+1 else M2[l]:=M[i] and l=l+1; end; var M:Mas; M1:Mas; M2:Mas2; i:integer; begin M[1]:=2; M[2]:=6; M[3]:=9; M[4]:=11; M[5]:=17; M[6]:=10; M[7]:=19; M[8]:=23; M[9]:=13; M[10]:=1; proc ( i, M, M1, M2,k,l); for i:=1 to k do Writeln (M1[i]); for i:=1 to l do Writeln(M2[i]); readln; end. не помню как на дельфи делать в условии добавления делать... типа if тото то k=1 и l=1 елсе... поправьте меня если что Надеюсь правильно))) привет Soherox