Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ решение задач с помощью цикла while

Автор: Yaroslav 4.12.2004 18:41

1)найти количество цифр числа с помощью цикла while!!!
2)найти вторую цифру числа с помощью цикла while!!!
3)найти среднюю цифру числа если в числе нечётное количество цифр с помощью цикла while!!!
4)каких цифр в числе больше?единиц или нулей?с помощью цикла while!!!
5)получить число записанное теми же цифрами в обратном порядке с помощью цикла while!!!
6)выяснить является ли число палиндромом с помощью цикла while!!!
7)найти первую цифру числа с помощью цикла while!!!

Внимательнее смотри на правила.

Цитата
1. Заголовок или название темы должно быть  информативным и понятным другим посетителям форума.

Автор: volvo 4.12.2004 18:48

1.

Код

var
 n, count: integer;
begin
 write('n = '); readln(n);
 count := 0;
 while n > 0 do
   begin
     inc(count);
     n := n div 10;
   end;
 writeln('count = ', count)
end.

Автор: ShadowWatcher 4.12.2004 19:00

3).

Код

Function GetCount(n:Integer):Integer;
var
count: integer;
begin
count := 0;
while n > 0 do
  begin
    inc(count);
    n := n div 10;
  end;
end;

Var
 i,count:Integer;
Begin
write('n = '); readln(n);
 i:=1;
 count := GetCount(n) Shr 1;
 While (i < count)
 Begin
   n := n Div 10;
   Inc(i)
 End;
 WriteLn(n Mod 10)
End.


smile.gif

Автор: volvo 4.12.2004 19:09

ShadowWatcher
angry.gif Проверяй, пожалуйста, программы перед тем, как запостить их сюда! В следующий раз накажу...

Yaroslav
Рабочий код для 3-ей программы:

Код

Function GetCount(n:Integer):Integer;
 Var count: Integer;
 Begin
   count := 0;
   While n > 0 Do
     Begin
       Inc(count);
       n := n div 10
     End;
   GetCount := count
 End;

Var
 i, n, count:Integer;
Begin
 Write('n = '); ReadLn(n);

 i := 0;
 count := GetCount(n) Shr 1;
 While (i < count) Do
   Begin
     n := n Div 10;
     Inc(i)
   End;
 WriteLn(n Mod 10)
End.

Автор: mithquessir 5.12.2004 0:43

4.

Код

var
  a1,a0,count: integer;
  k,n:longint;
begin
    ReadLn(n);
    k := n;
    while k > 0 do
    begin
         inc(count);
         k := k div 10;
    end;
    while count > 0 do
    begin
         if (n mod 10) = 0 then
         inc(a0)
         else
         if (n mod 10) = 1 then
         inc(a1);
         n := n div 10;
         dec(count);
     end;
     if a1 > a0 then WriteLn('1 bolshe')
     else
     if a1 < a0 then WriteLn('0 bolshe')
     else WriteLn('porovnu');
end.

Автор: mithquessir 5.12.2004 1:11

2.

Код

var
  a2,count:integer;
  n,k:longint;
begin
    ReadLn(n);
    k := n;
    while k > 0 do
    begin
         inc(count);
         k := k div 10;
    end;
    while count > 0 do
    begin
         if count = 2 then
         a2 := n mod 10;
         n := n div 10;
         dec(count);
    end;
    WriteLn(a2);
end.

Автор: mithquessir 5.12.2004 1:15

7.
Аналогично 2, только меняй

Код

...if count = 2 then...

на
Код

...if count = 1 then...
.

Автор: Флогримм 5.12.2004 8:14

5

PASCAL CODE
var a:longint;
    i:integer;
    s,new:string;
begin
write('a> ');
readln(a);
str(a,s);
writeln(s);
i:=length(s);
while i>0 do
      begin
      new:=new+s[i];
      dec(i);
      end;
if a<high(longint) then val(new,a,i);
writeln('result> ',a);
end.

Автор: Флогримм 5.12.2004 8:23

6

PASCAL CODE
const flag:boolean=true;
var s:string;
    i:byte;
begin
write('s> ');
readln(s);
i:=0;
while i<=(length(s) div 2)+1 do
      begin
      inc(i);
      flag:=s[i]<>s[length(s)-i+1];
      end;
writeln(flag);
end.

Автор: volvo 5.12.2004 14:30

Флогримм
Как же мне нравится, когда что-то с чем-то сравнивают, и результат пишут в логическую переменную ... rolleyes.gif

Например:

Код
if s[i]<>s[length(s)-i+1] then flag:=false;

Автор: Jahnerus 5.12.2004 16:59

volvo
Да а ещё бывает и такое blink.gif

Код
.......
if b=true then ....

Это всё из отряда тафталогии!

Автор: Флогримм 6.12.2004 9:27

ой! бывают у меня оазные глюки... считай, что очепятка smile.gif
вопчем исправил я