Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.10.2012, 20:12
delphi_help delphi_help вне форума
Прохожий
 
Регистрация: 01.10.2012
Сообщения: 3
Репутация: 10
Печаль Помогите оптимизировать и улучшить стиль программ

Уважаемые программисты, помогите пожалуйста оптимизировать программы (их две), и улучшить ее стиль (работают ли они вообще?). Задали в колледже, а я полный 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  
Старый 01.10.2012, 21:01
qazwsx qazwsx вне форума
Прохожий
 
Регистрация: 03.08.2012
Сообщения: 10
Репутация: 10
По умолчанию

Напишите задание, что должны дедать программы?
Ответить с цитированием
  #3  
Старый 01.10.2012, 22:31
delphi_help delphi_help вне форума
Прохожий
 
Регистрация: 01.10.2012
Сообщения: 3
Репутация: 10
По умолчанию

№2
ввести строку. "задвоить" каждый символ строки.
задание первой узнаю завтра, за ранее благодарю!
Ответить с цитированием
  #4  
Старый 02.10.2012, 06:57
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от delphi_help
№2
ввести строку. "задвоить" каждый символ строки.
задание первой узнаю завтра, за ранее благодарю!
Вторая программа вроде правильно работает. Только я немного по-другому её сделал бы:
Код:
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.
А вот вторая программа явно делает что-то не то - у меня она просто заменяет в числе нолики на девятки (если это действительно то что она должна делать, то это можно сделать и попроще). Ещё там вычисляется значение для переменной i, но потом эта переменная нигде не используется (зачем, спрашивается, её вычисляли?). Ну и компилятор должен ругнуться на строку где объявляются переменные - там должно быть двоеточие вместо знака крышки.
Ответить с цитированием
  #5  
Старый 02.10.2012, 07:59
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Мой вариант:
Код:
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  
Старый 02.10.2012, 16:41
delphi_help delphi_help вне форума
Прохожий
 
Регистрация: 01.10.2012
Сообщения: 3
Репутация: 10
Хорошо

огромное спасибо всем!!! вы мне очень помогли!!!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter