|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Помогите оптимизировать и улучшить стиль программ Уважаемые программисты, помогите пожалуйста оптимизировать программы (их две), и улучшить ее стиль (работают ли они вообще?). Задали в колледже, а я полный 0 в этом. Буду очень благодарен если мне кто-нибудь поможет! №1 Код: var a, b, i, x^ integer; begin readln(x); a:=x; b:=1; while a <>0 do begin b:=b*10; if a mod 10=0 then begin a:=a+9; i:=(x mod(b*10)); x:=(x mod b)+(a*(b div 10)); end; a:=a div 10; end; writeln(x); end. №2 Код: var q,w,e,r,t:string; z,x,c,v:integer; begin readln(q); z:=length(q); c:=2; v:=1; for x:=1 to z do begin w:=copy(q,v,1); insert(w,q,c); v:=v+2; c:=v+1; end; writeln(q); end. Последний раз редактировалось Admin, 01.10.2012 в 20:24. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Напишите задание, что должны дедать программы? | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   №2 ввести строку. "задвоить" каждый символ строки. задание первой узнаю завтра, за ранее благодарю! | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 Код: var
  S1, S2: string;
  i: integer;
begin
  Readln(S1);
  SetLength(S2, Length(S1) * 2);
  for i := 1 to Length(S1) do
  begin
    S2[i * 2 - 1] := S1[i];
    S2[i * 2] := S1[i];
  end;
  Writeln(S2);
end. | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Мой вариант: Код: var  
  S1, S2: string;  
  i: integer;
begin  
  Readln(S1);   
  S2 := '';
  for I := 1 to Length(S1) do  
    S2 := S2 + S1[i] + S1[i];
  Writeln(S2);
end.Для первой задачи нужно задание. Если все нули заменть на 9, то вариант через строку (Delphi): Код: var S : String; begin ReadLn(S); WriteLn(StringReplace(S,'0','9',[rfReplaceAll])); end. Вариант с целыми числами: Код: var
  N, M, P, X : Integer;
begin
  ReadLn(N);
  M := 0;
  P := 1;
  While N <> 0 Do
    Begin
      X := N mod 10;
      If X = 0
        Then M := M + P * 9
        Else M := M + P * X;
      P := P * 10;
      N := N div 10;
    End;
  WriteLn(M);
end. | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|   огромное спасибо всем!!! вы мне очень помогли!!!!! |