Вопрос № 114921: Доброго времени суток!
Никак не могу понять, как работает функция, что в приложении(вообще непонятен принцип). Написал, скомпилировал, выдает то, что нужно, а именно - при вводе х, равного 23, выводит 16. Так и должно быть......Вопрос № 114924: Здравствуйте! Помогите разобраться!
У меня задание типа создание простого калькулятора!
Сначала я ввожу 1-ое число, потом выбираю знак операции, потом ввожу 2-ое число!
Здесь я использую селектор:
сase sign of
'+' : res:= o...Вопрос № 114945: Помогите Написать программу которая производит обмен первого и последнего символа введенного слова....Вопрос № 114947: Написать программу: К слову присоединить столько ?(знаков вопроса)сколько в нем букв.
...Вопрос № 114960: Добрый день! Помогите пожалуйста! Завтра Практическая работа вот нужно решить задания!
Задача 1. Заменить первый и последний символ на символ *(звездочка).
Задача 2. Есть ли в одномерном массиве два соседних положительных элемента? Ответ: Ест...Вопрос № 114962: Сорри! Забыл еще одну! Она для Вас тоже легкая! Я начинающий программист потому пока не знаю ничего!
Задача.
Вывести табл. значений ф-и y=45+|x|. Диапазон изменения аргумента от -2 до 4, шаг приращения аргумента 1,5....Вопрос № 114967: Извините! Я решил 2-ки свои исправить! Вот еще парочка!
Задача 1. Вставить пробел после каждого символа введенного слова.
Задача 2. Удалить все пробелы с введенного слова....Вопрос № 115027: В одномерном массиве найти количество нечетных элементов массива! Заранее очень сильно благодарю!...Вопрос № 115058:
У меня почему не работает ,ошибки не указывает..
Задание Посчитать кол-во слов файл ,в которых присутствует буквы \'a\',\'o\',\'i\'. ...
Вопрос № 114.921
Доброго времени суток!
Никак не могу понять, как работает функция, что в приложении(вообще непонятен принцип). Написал, скомпилировал, выдает то, что нужно, а именно - при вводе х, равного 23, выводит 16. Так и должно быть...
function f(x:integer):integer; begin if x=1 then f:=1 else if odd(x) {проверка на чётность} then f:=f(3*x+1)+1 {функция запускает сама себя} else f:=f(x div 2)+1 {тоже самое только при других условиях} end
Ответ отправил: programyst (статус: Заблокирован)
Ответ отправлен: 19.12.2007, 21:49
Отвечает: Gh0stik
Здравствуйте, Work_stranger!
При обращении функции в процессе вычислений к самой себе называют рекурсией. Имеено она и отображена у Вас в коде.
Условие if odd(x) ... Вы поняли верно, в зависимости от четности/нечетности переменной х функция вычисляется по той или иной "формуле".
Для понятия как работает Ваш код достаточно немного преобразоватьисходный код так, чтобы можно было видеть этапы выполнения, например так: function f(x:integer):integer; begin if x=1 thenbegin writeln('f=1'); f:=1;end elseif odd(x) thenbegin writeln('f=f(',3*x+1,')+1'); {выводим какое значение передается на текущем шаге в функцию}
f:=f(3*x+1)+1;end elsebegin writeln('f=f(',x div 2,')+1'); {выводим какое значение передается на текущем шаге в функцию}
f:=f(x div 2)+1;end end;
begin
WriteLn(f(23));
Readln; end.
После выполнения этого примера на экране Вы получите такую картинку: f=f(70)+1
f=f(35)+1
f=f(106)+1
f=f(53)+1
f=f(160)+1
f=f(80)+1
f=f(40)+1
f=f(20)+1
f=f(10)+1
f=f(5)+1
f=f(16)+1
f=f(8)+1
f=f(4)+1
f=f(2)+1
f=f(1)+1
f=1
16
Легко убедится если посчитать все ЕДИНИЦЫ, то их количество и есть ответ - 16.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Академик) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) WWW:http://gh0stik.rusfaq.ru/ ICQ: 289363162 ---- Ответ отправлен: 19.12.2007, 22:34
Вопрос № 114.924
Здравствуйте! Помогите разобраться!
У меня задание типа создание простого калькулятора!
Сначала я ввожу 1-ое число, потом выбираю знак операции, потом ввожу 2-ое число!
Здесь я использую селектор:
сase sign of
'+' : res:= op1 + op2;
'-' : res:= op1 + op2;
ну и т.д.
вопрос: а как здесь использовать функции "sqrt" и "sqr"? ПОСОВЕТУЙТЕ ПОЖАЛУЙСТА!
Отправлен: 19.12.2007, 21:41
Вопрос задал: Васько (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: programyst !!! Здравствуйте, Васько!
сase sign of 'Sqr' : res:= Sqr(Op1); 'Sqrt' : res:= Sqrt(op1); ну и т.д.
Ответ отправил: programyst (статус: Заблокирован)
Ответ отправлен: 19.12.2007, 21:52
Отвечает: Gh0stik
Здравствуйте, Васько!
Поскольку case в работает только с перечисляемыми типами, то можно использовать любое обозначение соответствующее заданного типа. По Вашему примеру понятно, что sign:char, то в качестве идентификатора соответствующей операци можете выбрать любой удобный для Вас символ. Например так: res:real; ... сase sign of '+' : res:= op1 + op2; '-' : res:= op1 + op2; 'q' : res:=sqrt(op1); 'w' : res:=sqr(op1); end;
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Академик) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) WWW:http://gh0stik.rusfaq.ru/ ICQ: 289363162 ---- Ответ отправлен: 19.12.2007, 21:54 Оценка за ответ: 5 Комментарий оценки: Cпасибо!
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Васько!
Предлагаю использовать только возведение в любую степень, т.к. "sqrt" = A1/2 и "sqr"=A2.
Case sign of '+':res:=op1 + op2; '-':res:=op1 - op2; '^':res:=exp(ln(op1)*op2); end;
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 20.12.2007, 13:28 Оценка за ответ: 5 Комментарий оценки: СПАСИБО! Но все таки, если я хочу использовать корень, то как мне тогда его записать!?
Вопрос № 114.945
Помогите Написать программу которая производит обмен первого и последнего символа введенного слова.
Отвечает: Gh0stik
Здравствуйте, Волошин Виталий Алексеевич!
Вот достаточно простое решение: var s:string;
c:char; begin write('Input word: '); readln(s); {вводим слово}
c:=s[1]; {переставляем символы местами}
s[1]:=s[length(s)];
s[length(s)]:=c; write('Result: ',s); {вводим результат}
Readln; end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Академик) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) WWW:http://gh0stik.rusfaq.ru/ ICQ: 289363162 ---- Ответ отправлен: 19.12.2007, 23:12 Оценка за ответ: 5 Комментарий оценки: Класс! Вы гений!
Вопрос № 114.947
Написать программу: К слову присоединить столько ?(знаков вопроса)сколько в нем букв.
Отвечает: SHERRY !!! Здравствуйте, Волошин Виталий Алексеевич! Считаем длину строки, проверяем количество букв и вносим изменения. Код в приложении.
PS. Листинг предполагает, что текст введён маленькими латинскими буквами!
Приложение:
--------- Наши программисты самые программистые программисты!..
Ответ отправил: SHERRY (статус: 5-ый класс)
Ответ отправлен: 20.12.2007, 00:17 Оценка за ответ: 5 Комментарий оценки: Спасибо! Все работает! Тут [\'a\'..\'z\'] с кавычками!
Вопрос № 114.960
Добрый день! Помогите пожалуйста! Завтра Практическая работа вот нужно решить задания!
Задача 1. Заменить первый и последний символ на символ *(звездочка).
Задача 2. Есть ли в одномерном массиве два соседних положительных элемента? Ответ: Есть или Нет.
Это последние задачи на сегодня! Спасибо!
Отвечает: Маренич Владимир
Здравствуйте, Волошин Виталий Алексеевич!
См. в проложении основное решение. Ввод и вывод данных думаю не надо...
Приложение:
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 20.12.2007, 00:56 Оценка за ответ: 5 Комментарий оценки: Работает! Супер!
Отвечает: programyst
Здравствуйте, Волошин Виталий Алексеевич!
первая задача
function MY(const s: string):string;
var I:byte;S1:String;
begin
I := SetLength(S);{получаем размер строки}
S1 := S;{для сохранения исходной строки}
s1[1]:= '*';
S1[i]:= '*'; {или} S1[i-1]:='*'; {точно не помню проверь оба}
My := S1;{присвоение изменённой строки функции}
end;
вторая задача
const K=9; {можно любое число}
type TVector= array[1..K]of integer;{вектор чисел}
function My_(A:TVector):Boolean;
var b:Boolean;i: Integer;
begin
b:= False;
I:=2;{счётчик 2 чтобы не выскочить за пределы вектора}
while (i<=K)and(b=False) do{проверка всего вектора}
begin
if (A[i]>0) and (A[i-1]>0) then b := true else b:= false;
inc(i);
end;
My_ := b;
end;
Ответ отправил: programyst (статус: Заблокирован)
Ответ отправлен: 20.12.2007, 01:12 Оценка за ответ: 3
Вопрос № 114.962
Сорри! Забыл еще одну! Она для Вас тоже легкая! Я начинающий программист потому пока не знаю ничего!
Задача.
Вывести табл. значений ф-и y=45+|x|. Диапазон изменения аргумента от -2 до 4, шаг приращения аргумента 1,5.
Отвечает: programyst
Здравствуйте, Волошин Виталий Алексеевич!
Type TMatrix=array[1..5]of array[1..2] of real;
procedure MY__(var X:Real;var A:TMatrix);
var i,j:Byte;
begin
X:= -2;I:=1;
while X<=4 do
begin
A[i,1] := 45+abs(X);
A[i,2]:= X;
inc(i);
X:= X+1.5;
end;
end;
{получили матрицу результатов т.е таблицу}
Ответ отправил: programyst (статус: Заблокирован)
Ответ отправлен: 20.12.2007, 01:24 Оценка за ответ: 4
Вопрос № 114.967
Извините! Я решил 2-ки свои исправить! Вот еще парочка!
Задача 1. Вставить пробел после каждого символа введенного слова.
Задача 2. Удалить все пробелы с введенного слова.
Отвечает: programyst
Здравствуйте, Волошин Виталий Алексеевич!
function My(S:string):string;
var S1:String;I:Byte;
begin
S1:=S;i:=1;
while i<=length(S1); do begin
S1:= insert(' ',S1,i+1); {или} S1:=insert(' ',S1,i); {точно непомню проверь оба}
inc(i);
end;
My := S1;
end;
function My_(S:String):String;
var
begin
S1:=S;i:=1;
while i<=length(S1); do begin
if S1[i]=' ' then S1:= delete(S1,i+1,1); {или} S1:=delete(S1,i,1); {точно непомню проверь оба}
inc(i);
end;
My_ := S1;
end;
Ответ отправил: programyst (статус: Заблокирован)
Ответ отправлен: 20.12.2007, 02:06 Оценка за ответ: 3
Вопрос № 115.027
В одномерном массиве найти количество нечетных элементов массива! Заранее очень сильно благодарю!
Отправлен: 20.12.2007, 12:58
Вопрос задал: Spider777 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Pavl
Здравствуйте, Spider777! Задача не сложная. Сначала обнуляем счётчик нечётных элементов. Если найден нечётный элемент, то увеличиваем счётчик на 1. Вот программа.
Приложение:
Ответ отправил: Pavl (статус: 2-ой класс)
Ответ отправлен: 20.12.2007, 13:24 Оценка за ответ: 5 Комментарий оценки: ГРОМАДНОЕ СПАСИБО!!! Если что, то обязательно напишу! СПАСИБО!!! Всем посоветую!!!
Вопрос № 115.058
У меня почему не работает ,ошибки не указывает..
Задание Посчитать кол-во слов файл ,в которых присутствует буквы \'a\',\'o\',\'i\'.
Отвечает: Pyatno
Здравствуйте, Викулин Степан Николаевич!
Проверила вашу программу у меня все работает,только я дописала путь к файлу где хранится текстовый файл (D:...).
Ответ отправила: Pyatno (статус: 1-ый класс)
Ответ отправлен: 20.12.2007, 16:28 Оценка за ответ: 1 Комментарий оценки: Двух слов не скажеть