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

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

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 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 ]
Модераторы: paradise, KMA
  

Janette


Новичок

помогите пожалуйста с задачкой ;( буду очень благодарна

Дан массив целых чисел, состоящий из 15 элементов. Заполнить его с клавиатуры. Выполнить:
найти сумму положительных элементов, значения которых меньше 10;

__________________________________________________________________________
KMA: сразу решение, чтобы потом на эту задачу ссылку сделать:

Code Sample:
 
program pr;
const size=15;
var i: byte;
     s: integer;  
     a: array [1..size] of integer;
BEGIN
       writeLn ('Заполните массив: ');
       for i:=1 to size do
        begin
          write ('[', i, ']=');
          readLn (a[ i ])
        end;
       writeLn ('::Ввод массива закончен::');
       write ('Сумма элементов положительных элементов массива равна: ');
       s:=0;
       for i:=1 to size do
         if (a[ i ]>0) and (a[ i ]<10)
            then s:=s+a[ i ];
       write (s);  
END.




(Сообщение отредактировал KMA 23 фев. 2008 23:44)

Всего сообщений: 1 | Присоединился: февраль 2008 | Отправлено: 23 фев. 2008 21:03 | IP
bekas


Долгожитель

Guest: "Да забыл сказать, что ее с помощью рекурсии нужно решить! А здесь я как понял с помощью графа."

Однако, разве не видна рекурсивность функции поиска searchR?!

Всего сообщений: 379 | Присоединился: январь 2006 | Отправлено: 23 фев. 2008 22:42 | IP
KMA



Долгожитель

Спасибо bekas за прекрасное решение задачи, оптимальнее, думаю, трудно написать. Есть одна ошибочка (скорее всего опечатка), вот здесь вот:
Code Sample:
 
chargraph [ LEN ] [ LEN ] =



Надо пробел поставить, между char и graph...

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 23 фев. 2008 23:53 | IP
KMA



Долгожитель


Задача работает, не получается немного совсем. А может кардинально поменять ее решение - а времени на это нет.
Не получается вывести значения xi, ПРИБЛИЖЕННЫЕ и точные значения функции в точках xi (i=0,1,29/4).


Погоди, может это  у меня глюки?! Вообщем здесь бы надо убрать n-1 и заменить на n.
Code Sample:
 
for i:=0 to n-1 do
  begin
  z[ i ]:=3+i*h+(i mod 4+1)/5*h; - задание точек
  L[ i ]:=y[ i ]+(z[ i ]-x[ i] )*(y[ i+1 ]-y[ i ])/h; - интерполяция - вычисление приближенного решения
  end;


Или я чего то не понимаю. По сути задача решена правильно. Просто выводишь ты в конце все 30 точек, а приближенно ты считаешь долько первые 29 точек.

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



Новичок


Погоди, может это  у меня глюки?! Вообщем здесь бы надо убрать n-1 и заменить на n.

Если так сделать, то как считать значение в последней точке, если нужна ЗАпоследняя? Так у меня уже было
Главная проблема - не могу вывести значение функции в точке 29/4 - это получается, что у меня x от параметра зависит, и надо сосчитать x и y при дробном параметре...

Всего сообщений: 28 | Присоединился: апрель 2007 | Отправлено: 24 фев. 2008 10:09 | IP
KMA



Долгожитель

Ты по моему, слишком сильно ушел в математическую модель. Кто тебе сказал, что i это какой-то обязательный параметр, от которого зависит твоя функция. Провокация все это ;-)

Будь проще. i это всего лишь индексный номер твоего элемента в массиве, и тут ничего не будет. Пусть у тебя в 29/4 будет соответствовать 29. Т. е.

Code Sample:
 
   x[29]:=a+(29/4)*h;
   y[29]:=54*sin(x[29]/3); - функция моя
  z[29]:=3+(29/4)*h+(29 mod 4+1)/5*h; - задание точек
  L[29]:=y[29]+(z[29]-x[29] )*(y[30]-y[29])/h;


Примерно так. Помни, что в скобках лишь индекс элемента, а не какая либо зависимость, а ему ты можешь назначать какое угодно число и ничего тебе за это не будет

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 24 фев. 2008 22:49 | IP
Guest



Новичок

Помогите решить 2 задачи на тему СТЕК:
1. Запросить и ввести символьную строку
2. Проверить на своевременное закрытие  любой скобки, даже если они разные

Всего сообщений: Нет | Присоединился: Never | Отправлено: 26 фев. 2008 11:33 | IP
KMA



Долгожитель

Зарегистрируйся, и покажи сам, что ты делал?

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 26 фев. 2008 19:28 | IP
BrowseR



Новичок

Здравствуйте,не поможете с задачкой.Я бы написал,что я сделал но не могу понять сам принцип решения,знаю что через set of.
Дана непустая последовательность слов из строчных русских букв;между соседними словами запятая,за последним словом точка.Напечатать в алфавитном порядке:
1)Все согласные буквы,которые входят только в одно слово
2)Все глухие согласные буквы которые не входят только в одно слово

Всего сообщений: 22 | Присоединился: январь 2008 | Отправлено: 26 фев. 2008 22:33 | IP
reina



Новичок

Здравствуйте, у меня возникла проблема с алгоритмом. Задание звучит так: в программу ввести TEXT файл, произвести его обработку и вывести в другой TEXT файл. Если при выводе длина строки превышает 50 символов, разделить строку на две части и вывести каждую часть как отдельную строку. В принципе задачка очень легкая, у меня есть вариант кода, Но он не совсем корректный, что в нем можно исправить, чтобы программа успешно выполнялась?
program TE;
uses crt;
var
 InpFile,
 OutFile :TEXT;
 InputString:string;
 OutputString: string;
 OutputfileName: string;
 Const
 InpFileName='Lab.txt';
 begin
    assign(InpFile,InpFileName);
     Reset(InpFile);
      writeln('введите название файла');
      readln(OutputfileName);
      assign(OutFile,OutputFileName);
       rewrite(OutFile);
 CLRSCR;
    while(not EOF(InpFile)) do
        begin
           readln(InpFile,InputString);
           outputstring:=inputstring;
              if(length(InputString)>50) then
                begin
                  outputString:=Copy(inputString,1,50);
                  writeln(outFile);
                  outputString:=Copy(InputString,51,length(InputString)-50);
                  writeln(outFile);
                end
           else
               writeln(outfile);
               writeln(inputstring);
           end;
       writeln(outputstring) ;
       Writeln(OutFile,OutputString);
    close(InpFile); close(OutFile);
end.

В данном случае программа работает только с одной строкой, а по заданию она должна применяться к неограниченному кол строк. Если поможите найти рациональное решение, буду очень благодарна.

Всего сообщений: 8 | Присоединился: февраль 2008 | Отправлено: 28 фев. 2008 1:39 | 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 ]

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