|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Помогите срочно У кого есть или Бог в программировании помогите с задачами: 1. Разработать функцию, которая преобразует заданное целое число по следующему правилу: если старшая цифра числа четная, то удвоить ее (например 235— 435 ) 2. Разработать процедуру, которая изменяет элементы заданного целочисленного массива по выше описанному правилу. Вывести массив и количество измененных элементов. | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Код: function ChangeFirstChar(N: Integer): Integer; begin if StrToInt(IntToStr(N)[1]) mod 2 = 0 then Result:=StrToInt(IntToStr(StrToInt(IntToStr(N)[1])*2) + Copy(IntToStr(N), 2, Length(IntToStr(N)))) else Result:=N; end; procedure ChangeFirstChars(var AN: Array of Integer); var i: Integer; begin for i:=Low(AN) to High(AN) do AN[i]:=ChangeFirstChar(AN[i]); end; | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   1.)  На форму помещаешь Edit, Button и Label. Для кнопки пишешь код: Код: procedure TForm1.Button1Click(Sender: TObject); Var k,m:integer; s:string; begin s:=Edit1.Text; s:=Copy(s,0,1); k:=strtoint(s); m:=strtoint(Edit1.Text); if (k and 1) = 0 then m:=m*2; Label1.Caption:=inttostr(m); end; 2.) На ту же форму помещаешь вторую кнопку и ListBox. Для кнопки пишешь код: Код: procedure TForm1.Button2Click(Sender: TObject); Var k,m:integer; s:string; A:Array [0..11] of integer; //Объявляем массив из 12 элементов i:integer; begin ListBox1.Items.Clear; //Заполняем массив цифрами: A[0]:=5; A[1]:=10; A[2]:=20; A[3]:=30; A[4]:=40; A[5]:=50; A[6]:=60; A[7]:=70; A[8]:=80; A[9]:=90; A[10]:=100; A[11]:=200; //Делаем цикл: for i := 0 to High(A) do begin s:=Copy(inttostr(A[i]),0,1); //Берем первое число k:=strtoint(s); m:=A[i]; if (k and 1) = 0 then m:=m*2; ListBox1.Items.Add(inttostr(m)); //заполняем ListBox end; | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   все бы хорошо,но надо в консольном( | 
| 
			 
			#5  
			
			
			
			
		 | ||||
| 
 | ||||
|   Мой вариант работает и в консоли. | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|   но нет самой функции и процедуры,у нас не сохранены они их надо писать | 
| 
			 
			#7  
			
			
			
			
		 | ||||
| 
 | ||||
|   ??? В моем первом посте написана процедура и функция. | 
| 
			 
			#8  
			
			
			
			
		 | |||
| 
 | |||
|   ну фишка же в том,что надо расписать сам алгоритм нахождения первой цифры и там далее | 
| 
			 
			#9  
			
			
			
			
		 | ||||
| 
 | ||||
|   А в моем посте это разве не написано? | 
| 
			 
			#10  
			
			
			
			
		 | |||
| 
 | |||
|   первое посмотрел,ты лучший.спасибо,позже вторую посмотрю,если что спрошу)огромное спасибо | 
| 
			 
			#11  
			
			
			
			
		 | |||
| 
 | |||
|   Код: program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;
function ChangeFirstChar(N: Integer): Integer;
begin
if StrToInt(IntToStr(N)[1]) mod 2 = 0 then
Result:=StrToInt(IntToStr(StrToInt(IntToStr(N)[1])*2) + Copy(IntToStr(N), 2, Length(IntToStr(N))))
else
Result:=N;
end;
procedure ChangeFirstChars(var AN: Array of Integer);
var
i: Integer;
begin
for i:=Low(AN) to High(AN) do
AN[i]:=ChangeFirstChar(AN[i])
end;
var
AN:integer;
x,N,i:integer;
begin
write('vvedite 4islo= ');
readln(N);
write('vvedite mass= ');
readln(AN);
x:=ChangeFirstChar(N);
writeln('izm= ',x);
{}
readln;
end.Как вывести массив,помогите,пробую я выводит только первое число массива Aristarh Dark: raggazi, еще одно нарушение правил форума и уйдешь в бан. | 
| 
			 
			#12  
			
			
			
			
		 | ||||
| 
 | ||||
|   Код: program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;
function ChangeFirstChar(N: Integer): Integer;
begin
if StrToInt(IntToStr(N)[1]) mod 2 = 0 then
Result:=StrToInt(IntToStr(StrToInt(IntToStr(N)[1])*2) + Copy(IntToStr(N), 2, Length(IntToStr(N))))
else
Result:=N;
end;
procedure ChangeFirstChars(var AN: Array of Integer);
var
i: Integer;
begin
for i:=Low(AN) to High(AN) do
AN[i]:=ChangeFirstChar(AN[i])
end;
var
L, i: Integer;
AN: Array of Integer;
begin
Writeln('Введите размер массива');
Readln(L);
SetLength(AN, L);
Writeln('Введите элементы массива');
for i:=0 to L - 1 do
Readln(AN[i]);
ChangeFirstChars(AN);
Writeln('Результат');
for i:=0 to L - 1 do
Writeln(AN[i]);
Readln;
end. |