Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивы и строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
viv
Помогите решить задачки
1-я: В последовательности a1, a2,...an найти числа, которые входят в последовательность по одному разу.
2-я: В первой половине строки все запятые заменить на точки, а во второй половине удвоить каждую встретившуюся точку.
virt
1)
Код
for i:=1 to n do
  begin
     k:=0;
     for j:=1 to n do
        if a[i]=a[j] then inc(k);
     if k=1 then write(a[i],' ');
  end;
APAL
2)
Код
Var
 St : String;
 i  : Byte;

Begin
 St:='wegr,.. esdfg. ,sdfg., .sdf, .s,dfg,s.d .fg. ,s.f.';
 Writeln(St);
 For i:=1 to (Length(St) div 2) do
   If St[i]=',' then St[i]:='.';
 For i:=Length(St) downto (Length(St) div 2)+1 do
   If St[i]='.' then
     Insert('.',St,i);

 Writeln(St);
End.
Romtek
Ну показали ему готовое решение. И что это ему (ей) дало?
Лучше знать стал(а) Паскаль? huh.gif
APAL
На примерах учатся!
Хотя в большинстве случаев человеку нужно просто получить зачет, а знания - это так, просто ненужный довесок... ;)
BlackShadow
ААААААААААААА!!!!!!!!!!!!!!!
Люди, только не надо опять эту тему поднимать!!!!!
Bogdan
Люди помогите...Вчера сделал прогу вроде бы пашет но не очень :-). Смысл такой.... Нода ввести число n. Вычислить количество щасливых билетов которых есть 2*n и у которых сумма первых n цифр равна сумме останних n цифр.Вот мой текст. Прога работает только для n=2. А для n=3 число вариантов меньше.Не понимаю почему. если кто поможет буду благодарен...
а вот и текст
Код
uses crt;
var k1,k2,i,d,n,zah,x1,x2: longint;
    s,s1,s2,t:string;
function step(x,n:integer): longint;
var i,h:longint;
begin
     h:=1;
     for i:=1 to n do h:=h*x;
     step:=h;
end;
function sum(r:string):longint;
var s3:string;
    j,w,rax:longint;
    e:integer;
begin
     w:=0;
     for j:=1 to length( r ) do
     begin
          s3:=copy(r,1,1);
          delete(r,1,1);
          val(s3,rax,e);
          w:=w+rax;
     end;
     sum:=w;
end;
begin
clrscr;
write('vvedyte N: ');readln(n);
k1:=step(10,2*n)-1;
k2:=step(10,n)-1;
for i:=k2 to k1 do
begin
   str(I,s);
   t:=s;
   d:=length(s);
    while d<> 2*n do
          begin
               s:='0'+s;
               d:=length(s);
          end;
   s1:=copy(s,1,n);
   delete(s,1,n);
   s2:=s;
   x1:=sum(s1);
   x2:=sum(s2);
   if x1=x2 then inc(zah);
   end;
   writeln;
   writeln('kolichestvo ',zah,' biletov');
   readln;
end.

Я скоро устану заключать код в соответствующие теги за место авторов!
APAL
Что-то я не очень понял условие...
Можно повторить сначала?

P.S.: Жуть какая-то...
Бродяжник
C программой все в порядке... почти. Недостает одной строчки. И из-за этого она вообще не работает. Попробуйте посчитать для n=1. Это легче всего проверить. У меня она насчитала тысячи билетов, хотя их никак не могло быть больше 100. Вообще-то их по Вашей методе должно бы быть 9(11,22,33,44,55,66,77,88,99). Попутно вопрос - то, что номера билетов идут не с 000001, а с 000999 - это так надо? А недостает этой программе инициализации переменной ZAH. Из-за этого ZAH вначале получает какое-то левое значение, к которому потом плюсуется число счастливых билетов. Других багов я не заметил.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.