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
|
|
|