Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2007, 16:27   #1
stalker
Пользователь
 
Регистрация: 01.02.2007
Сообщений: 12
По умолчанию Найти количество различных цифр данного натурального числа.

Помогите переделать:
1)Дано натуральное число: найти вторую(сначала) цифру данного числа; верно ли что данное число делится на (А,В,С)-вводятся с Клавы..
2)Найти все двузначные числа которые при умножение на 2 заканчиваются на 8, а при умножение на 3 заканчиваются на 4.
3)Найти количество различных цифр данного натурального числа.
Сколько я мучался не получается и все тут. Может кто из добрых людей поможет мне…
Заранее благодарю…..

Вот что у меня получилось: Но надо, чтобы при запуски проги можно было выбрать номер задачи, например при нажатие 1 выполняется первая прога , при нажатие 2 и тд…


program stalker;
uses crt;
var d:1..3;
y,k,h,v,x,s,m,n,b,a,i,i1,c,z,e,q,w, g:integer;
l:char;
begin clrscr;
l:='y';
while l='y' do begin
writeln('выберите действие 1,2,3');
readln(e);
s:=n;
i:=0;

if e=1 then begin
writeln('введите число a');
readln(a);
writeln('введите число b');
readln(b);
writeln('введите число c');
readln(c);
writeln('введите число');
readln(n);
s:=n;
while n<>0 do begin
m:=n mod 10;
n:=n div 10;
i:=i+1;
while s<>0 do begin
m:=s mod 10;
s:=s div 10;
x:=i-1;
if x=2 then begin
writeln(m); end else writeln('нет');
end;
if (m mod a)=0 then writeln('верно на а');
if (m mod b)=0 then writeln('верно на b');
if (m mod c)=0 then writeln('верно на с');
end;
end;

if e=2 then begin
{ writeln('введите количество 2 значных чисел');
readln(z);
for i1:=1 to z do begin
writeln('введите ',i1,' 2-х1 значное число');
readln(q); }
writeln('vvedite chislo');
readln(q);
s:=q*2;
w:=q*3;
x:=s mod 10;
y:=w mod 10;
if ((x=8)and(y=4)) then
writeln('da')
else writeln('нет');

{v:=q;
q:=q*3;
n:=w mod 10;
end;
if n=4 then
writeln(v)
else writeln('нет');}
end;


if e=3 then begin
writeln('z');
readln(z);
k:=(-1);
while z<>0 do begin
m:=z mod 10;
z:=z div 10;
if m<>k then begin
i:=i+1;
k:=m;
end; end; end;
writeln(i);
end;
writeln('прдолжить работу y/n');
readln(l);
readln;end.
stalker вне форума Ответить с цитированием
Старый 14.02.2007, 19:06   #2
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Цитата:
верно ли что данное число делится на (А,В,С)-вводятся с Клавы..
Ты имеешь ввиду делится и на A и на B и на C?
Цитата:
3)Найти количество различных цифр данного натурального числа.
А здесь можно число в строковом формате вводить или обезательно надо в целом (числовом)?
Ответь. Я тебе код напишу. Задача не сложная.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 14.02.2007, 19:58   #3
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Я написал тебе код по всей твоей второй проге. Но со второй частью там реальный прикол!
Цитата:
Найти все такие тройки натуральных чисел х,у,z из интервала от 1 до 20 для которых выполняется равенство Х(в квадрате)+У(в квадрате)+Z =0
Ты подумай как вообще сумма каких-либо натуральных чисел может равняться нулю, ведь все натуральные числа больше нуля. С твоим поставленным условием программа (при выборе этой части всей задачи) не выведит ни одной тройки чисел!
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 14.02.2007, 20:12   #4
stalker
Пользователь
 
Регистрация: 01.02.2007
Сообщений: 12
По умолчанию

Да именно делитя и на A и на B и на C....

((3)Найти количество различных цифр данного натурального числа.))
да именно в целом (числовом)....
Напиши пожалуйста прогу срочно надо....
Заранее спасибо и отдельный RESPECT тебе за отзывчивость...
stalker вне форума Ответить с цитированием
Старый 14.02.2007, 20:18   #5
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Ща напишу... А чё насчёт второй части второй проги? Прочитай мой пост выше.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 14.02.2007, 20:37   #6
stalker
Пользователь
 
Регистрация: 01.02.2007
Сообщений: 12
По умолчанию

Я сам не понял почему так, но постановка задачи именно такая!!!!????!!!!!
Может тогда не нулю , а просто считае X Y Z и выводит ответ.......
Попробуй пожалуйста сделать так как считаешь сам.....
stalker вне форума Ответить с цитированием
Старый 14.02.2007, 21:32   #7
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Вот код к первой программе:
Код:
program Vremya_14_02_07;
uses crt;
var
key:char;
a,b,c,n,i,kol:integer;
chisl:array[1..10] of byte;
begin
clrscr;
writeln('Vyberite odno iz nige ukazannyh deistvii nagav 1,2 ili 3: ');
writeln('{zdes` napishesh tekst 1-oi zadachi}');
writeln('{zdes` napishesh tekst 2-oi zadachi}');
writeln('{zdes` napishesh tekst 3-oi zadachi}');
repeat
key := readkey;
until (key >= '1') and (key <= '3');
if key = '1' then
 begin
  repeat
   write('Vvedite natural`noe chislo: ');
   readln(n);
   if n < 10 then write('Error!');
  until n > 9;
   write('a = '); readln(a);
   write('b = '); readln(b);
   write('c = '); readln(c);
   if (n mod a = 0) and (n mod b = 0) and (n mod c = 0) then
    writeln('Chislo delitsya na a,b,c!')
   else
    writeln('Chislo ne delitsya na a,b,c!');
   if n > 99 then
    repeat
     n := n div 10;
    until n < 100;
    n := n mod 10;
    writeln('Vtoraya chifra v chisle ot nachala: ',n);
 end;
if key = '2' then
 begin
  for i := 10 to 99 do
   if ((i*2) mod 10 = 8) and ((i*3) mod 10 = 4) then write(i,' ');
 end;
if key = '3' then
 begin
  write('n = '); readln(n);
  i := 0;
  repeat
   i := i + 1;
   chisl[i] := n mod 10;
   n := n div 10;
  until n = 0;
  kol := 0;
  for a := 0 to 9 do
   for b := 1 to i do
     if chisl[b] = a then
     begin
      kol := kol + 1;
      break;
     end;
  writeln('Kolichestvo razlichnyh chisel: ',kol);
 end;
readkey;
end.
Я конечно решил её, но вот во втором задание...:
Цитата:
2)Найти все двузначные числа которые при умножение на 2 заканчиваются на 8, а при умножение на 3 заканчиваются на 4.
Двухзначных чисел, которые удовлетворяли бы таким условиям не существует, поэтому ничего не будет выведено на экран.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 14.02.2007, 21:36   #8
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Цитата:
а просто считае X Y Z и выводит ответ.......
Это ты глупость какую то сморозил...
Короче вот код, но в случае с x,y,z ничего не будет выведено на экран, но алгоритм верный.
Код:
program Vremya_14_02_07;
uses crt;
var i,j,l,k,sum,x,y,z:integer;
key:char;
chisl:array[1..100] of integer;
begin
clrscr;
writeln('Vyberite odno iz nige ukazannyh deistvii nagav 1 ili 2: ');
writeln('{zdes` napishesh tekst 1-oi zadachi}');
writeln('{zdes` napishesh tekst 2-oi zadachi}');
repeat
key := readkey;
until (key = '1') or (key = '2');
if key = '1' then
 begin
  write('k = '); readln(k);
  l := 0;
  for i := 100 to 300 do
   begin
    sum := 0;
    for j := 1 to i do
     if i mod j = 0 then sum := sum + j;
    if sum = k then
     begin
      l := l + 1;
      chisl[l] := i;
     end;
   end;
  if l = 0 then
   writeln('Takih chisel net!')
  else
   for i := 1 to l do write(chisl[i],' ');
 end
else
 for x := 2 to 19 do
  for y := 2 to 19 do
   for z := 2 to 19 do
    if sqr(x)+sqr(y)+z=0 then writeln('x = ',x,'; y = ',y,'; z = ',z,';');
readkey;
end.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Старый 14.02.2007, 22:25   #9
stalker
Пользователь
 
Регистрация: 01.02.2007
Сообщений: 12
По умолчанию

Большое прибольшое спасибо.....
Спасибо, что уделил время, надеюсь на дальнейшую поддержку....
stalker вне форума Ответить с цитированием
Старый 14.02.2007, 22:33   #10
Time
Пользователь
 
Регистрация: 09.02.2007
Сообщений: 32
По умолчанию

Незачто! Обращайся ещё и учись хотя бы простые задачи решать сам.
Просматривая мои программы, вникни в каждую букву, пойми, что откуда берётся и весь алгоритм в целом. Если будешь разбираться в них - это тебе поможет научится делать самому проги. Со временем будет приходить опыт.
Time have not meaning, mind - this is main...
Time вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество цифр после запятой LIEN БД в Delphi 7 03.07.2008 22:12
Паскаль. найти все числа кратные трем и посчитать их количество __k1ll3r__ Помощь студентам 6 02.04.2008 16:37
Помогите!Срочно! "Составьте программу получения в порядке убывания всех делителей данного числа" koston Паскаль, Turbo Pascal, PascalABC.NET 2 26.03.2008 12:34
Подсчитать количество чисел с заданной суммой цифр belovv Помощь студентам 3 25.12.2007 20:55