Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на Pascal
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

Katya Grodno


Удален

Помогите, ПОЖАЛУЙСТА, еще написать задачку на Паскале:
ОПРЕДЕЛИТЬ КОЛ-ВО ПОВТОРОВ КАЖДОЙ ЦИФРЫ ОТ 0-9 В ЧИСЛЕ N В СТЕПЕНИ N (N<= 1000).
Я понимаю, что число N в степени N должно быть представлено не как обыкновенное число, а как массив, из которого нужно будет отслеживать кол-во повторов той или иной цифры.
Но как это сделать???

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 19 янв. 2007 16:46 | IP
sssuuupppeeerrr


Удален

Всем привет!!!Подскажите, пожалуйста, как решить задачу.

Задан массив a[1 .. n] из натуральных чисел. Для заданного натурального числа определить можно ли его представить суммой элементов массива. Каждый элемент массива может входить в сумму только один раз. (Замечание: сумма может состоять из одного слагаемого)

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 19 янв. 2007 21:47 | IP
KMA



Долгожитель

Katya Grodno, в общем то самый лучший вариант это все преобразовать в строку, а потом запустить цикл от 1 до length (s); Далее сравнивать
if s{i}=1 then inc(n1);
if s{i}=2 then inc(n2);
...
if s{i}=9 then inc(n9);
Мысль такая, вполне оправдана, простой перебор. Как это исполнить да очень просто, возводишь n в степень n и все преобразуешь это все в строку =). Поможет тебе в этом процедура str (n, s), которая преобразует число n в строку.

Zolti я от тебя ничего не хочу, номер моей аськи надо переводить в десятиричную систему =) Вот, а если хочешь, чтобы тебе помогли, то выкладывай или код, или хотя бы мысли.

sssuuupppeeerrr а есть у тебя у самой какие-нибудь мысли? Выкладывай.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 янв. 2007 0:03 | IP
sssuuupppeeerrr


Удален

Вот все, что смог написать. Ребят, помогите, а то завтра экзамен!!! Спасибо.

Uses crt;
const
  n=5;
Var i,b,j,k,z:integer;
   a,c:array[1..100] of integer;
   f:boolean;
   sum:real;
BEGIN
  write('Danniy massiv ');
  for i:=1 to n do
     begin
        write('a[',i,']='); readln(a);
        write(' ');
     end;
for i:=1 to n do
  for j:=1 to (n-i) do
     begin
        if a>a[i+1] then
           begin
              k:=a;
              a:=a[i+1];
              a[i+1]:=k;
           end;
     end;
  write('vvedennoe chislo= '); readln(b);
  sum:=0; f:=true;
  for j:=1 to n do
  for i:=1 to n do
     begin
        if b=a then
           begin
              f:=true;
              break;
           end
        else
           begin
              f:=false;
              repeat
              sum:=sum+a;
              i:=i+1;
              until(sum<>b) or (i<>5);
           end;
     end;
writeln;
if f=true then
  begin
     write('mogno');
  end
else
  begin
  if sum=n then
        write('toge mogno')
     else
        write('nelyzya');
  end;
END.


(Сообщение отредактировал sssuuupppeeerrr 20 янв. 2007 13:56)

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 20 янв. 2007 13:53 | IP
KMA



Долгожитель

Бууу, вообще ужас =(
Массив состоит из 100 элементов, ты ведь задолбаешься вводить. Хм, да и выводить тоже =) Здесь простыми методами не решить. В общем все дело состоит в сравнении. Ты вначале упорядочиваешь массив потом отсекаешь все элементы, которые больше твоего, потом уже смотришь вначале по следующему алгоритму. Берешь последний элемент, который меньше первоначально твоего числа в этом массиве... да что я распинаюсь. Вообще задача относящаясь к олимпиадным, ее решить уже как-то здесь пробовали, но никто не смог, я предложил алгоритм, но все меня дружно послали =) Т. к. все думают, что есть решение проще. Может оно и есть, но я предлагаю таким методом. Выкладываю код, но только потому, что ты сам старался и задача более или менее интересная.

 
const n=5;
type  mas=array [1..n] of integer;
Var a: mas;
   b, buf: integer;
   j, i: byte;
   flag: boolean;

function func (m, sum: integer; fExit: boolean): boolean;
begin
    if not (fExit)
       then if m=0
               then func:=false
               else
                begin
                 repeat
                  m:=m-1;
                  if (a[m]<=sum)
                     then
                      begin
                       if ((sum-a[m])=0)
                           then fExit:=true;
                       fExit:=func (m, sum-a[m], fExit)
                      end;
                 until (m=0) or (fExit);
                 func:=fExit;
                end
       else func:=true;
end;

BEGIN
    {вводим}
    for j:=1 to n do
     begin
      write('[', j, ']=');
      readLn (a[j])
     end;
    write ('Chislo ->');
    readLn (b);

    {сортируем}
    for i:=1 to n-1 do
     for j:=1 to (n-i) do
      begin
       if a[j]>a[j+1] then
          begin
             buf:=a[j];
             a[j]:=a[j+1];
             a[j+1]:=buf
          end;
      end;

    {Начинаем отсекать, ведем поиск номера элемента массива, который первым с конца будет меньше или равен заданному числу (ведь элементы большие нас не интересуют, из них суммы не получиться)}

    j:=n;
    while (a[j]>b) and (j<>1) do
     j:=j-1;

    {Суть такова. Берем первый элемент с конца (он будет максимальным), вычитаем его из суммы, эту сумму сравниваем со вторым с конца, если элемент меньше этой суммы то вычитаем его и суммы и продолжаем сравнивать с третим с конца, если больше, то сразу сравниваем с третьим оставшуюся сумму ну и т. д. Итак мы проверим есть ли с последним с конца сумма остальных любых других членов, которые бы образовывали заданную сумму. Значит на это число укорачиваем массив. Опять из заданного числа вычитаем последний элемент, оставшуюся сумму сравниваем с предпоследним, если сумма больше, то вычитаем, если нет, то сравниваем со 2 с конца и т. д. В общем рекурсия сложно объяснить, сдесь надо понять. }
   
    flag:=false;
    repeat
     if (a[j]<=b)
        then
         begin
          if ((b-a[j])=0)
             then flag:=true;
          flag:=func (j, b-a[j], flag)
         end;
     j:=j-1;
    until (j<=0) or (flag);

    if flag
       then writeLn ('Moget')
       else writeLn ('Ne moget');
    readLn;
END.


Вписал значит сейчас все в комменты.


(Сообщение отредактировал KMA 21 янв. 2007 4:19)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 21 янв. 2007 3:49 | IP
sssuuupppeeerrr


Удален

Огромное спасибо!!!!!!!!!!!!!!!!!

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 янв. 2007 7:34 | IP
3ak


Удален

Если есть кто то помощь нужна срочно

Вычислить бесконечную сумму с заданной точностью eps (eps>0). Считать, что точность достигнута, если очередное слагаемое по модулю меньше eps, - все последующие слагаемые можно уже не учитывать. S=1 - 2/1! + 2^2/2! - ... + (-2)^n/n! + ...

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 янв. 2007 15:00 | IP
3ak


Удален

Посещение раз в неделю наверно

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 янв. 2007 15:23 | IP
zaika


Удален

Решите, пожалуйста Задачи!!! Очень нужно!!
1.Дана матрица размера 5*10.Найти максимальное значение в каждом столюце.
2.Дана матрица 5*10. Найти максимальное значение среди сумм элементов всех ее строк и номер строки с этим максимальным значением.
3.Дана матрица размером 5*10. Вывести номер ее первой строки,содержащей только положительные элементы.Если таких строк нет, то вывести 0
4.Дана квадратная матрица порядка М.Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы.
5. Даны два числа К1 и К2 и матрица размером 4*10. Поменять местами столбцы матрицы с номерами К1 и К2

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 янв. 2007 19:50 | IP
3ak


Удален

Решите пожалуйста, это все что мне надо
Вычислить бесконечную сумму с заданной точностью eps (eps>0). Считать, что точность достигнута, если очередное слагаемое по модулю меньше eps, - все последующие слагаемые можно уже не учитывать.
1часть:  S=1 - 2/1! + 2^2/2! - ... + (-2)^n/n! + ...
2часть:  Дана непустая последовательность не нулевых целых чисел, за которой следует 0.
Определить, сколько из них принимает наименьшее значение.

P=(cos1! + sin2!)(cos3! + sin4!) ... (cos(n-1)! + sin(n)!)

Текст задан последовательностью литер, за которыми идет '.' .
Написать программу, которая определяет выполнено ли следующее условие:
В тексте больше английских букв, чем знаков препинания

Const n=20;
Type vector= array[1..n] of integer;
Вычислить для вектора x:
Среднее геометрическое |x[1]*x[2]*...x[n]| (корень n степени из модуля произведения)

Даны натуpальное число n и действительная матpица (N x 9). Найти сpеднее аpифметическое: a) каждого из столбцов; б) каждого из стpок.  

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 21 янв. 2007 20:58 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com