Другое > Hard'n'Soft
Изучение азов програмирования , советы начинающим и т.д и т.п
<< < (4/7) > >>
Fly:

--- Цитата: gepar ---Fly,сейчас попробую проделать , паралельно возник вопрос - как можно присвоить переменной значение типа <=2 и т.д (ну тобишь как присвоить значение a<3 так чтобы паскаль это понял и дальше потом не матерился ) .
--- Конец цитаты ---
Что-то не понял. Тебе надо переменной присвоить значение типа 2,999999999999? Или записать в переменную результат сравнения a<3 (истина/ложь)?
gepar:
BaNdiT, хитрость усёк , фенкс за совет .

Добавлено позже:
Fly, если конкретно то упражнение в книге следующее : Определите значение величины q после выполнения каждой из следующих команд присваивания : q:=a<b<c and c<5 вот я и хочу узнать как можно присвоить c то что оно меньше 5 так как если я пишу q:=a<b<c<5 то компилятор материться , или я что-то не так делаю ?
topos84:

--- Цитата: gepar ---если конкретно то упражнение в книге следующее : Определите значение величины q после выполнения каждой из следующих команд присваивания : q:=a<b<c and c<5
--- Конец цитаты ---
Это упражнение или кусок упражнения? Похоже, что кусок. Напиши целиком.
gepar:

--- Цитата: topos84 ---Это упражнение или кусок упражнения? Похоже, что кусок. Напиши целиком.
--- Конец цитаты ---
нет , это всё , ну разве что можно добавить : a,b,c - целочисленные переменные , значение которых вводиться с клавиатуры .А так это всё задание .
Aku:
gepar, не понимать :'(
Значение переменной ЛЮБОЕ МЕНЬШЕ 3-ёх? Случайное?! Тогда через Random. Или тебе нужен ИМЕННО строковое значение ">=3'????

--- Цитата ---как можно присвоить переменной значение
--- Конец цитаты ---
mindblow/ ты хочешь описать переменной множество?! Типа (+бесконечности до 3]?? Нуууу! Объясни ЧТО ДЕЛАТЬ НАДО!!!
gepar:
Ну вот другой пример где я на этом же застрял :
Написать программу вычисления функции где y=x*x если 0<x<2 .Ну дальше я писать не буду так как застрял то я в самом начале на том с чем не разобрался в прошлый раз , а конкретно вот код :
program   test;
uses crt;
var
a,b,c,x:real;
Begin
     write('enter x');
     readln(x);
     if 0<x<2 then
Дальше не пишу так как компилятор выдаёт ''операнды имеют неприводимые типы'' (это паскаль abc такое пишет если что) и наводит курсор сразу после двойки , такое же у меня было с присвоением в прошлом упражнении q значение a<b<c<5 .
Что я делаю не так подскажите плыз  :'(
Aku:

--- Цитата ---<
--- Конец цитаты ---
это же не знак арифметического/тригонометрического/любого другого действия!

--- Цитата ---q:=a<b<c<5
--- Конец цитаты ---
разумеется НЕ ТАК.
Тебе нужно присвоить НАИМЕНЬШЕЕ значение из 3-х?

--- Код: ---if (a<b) and (a<c)
then q:=a
else
     if (b<c) and (b<a) then q:=b
                              else q:=c;

--- Конец кода ---
оно:?
gepar:
Aku,вот второй пример , возможно там понятнее будет что у меня конкретно не получается .
Aku:

--- Цитата: gepar от 21 Октябрь 2009, 21:13:59 ---Ну вот другой пример где я на этом же застрял :
Написать программу вычисления функции где y=x*x если 0<x<2 .Ну дальше я писать не буду так как застрял то я в самом начале на том с чем не разобрался в прошлый раз , а конкретно вот код :
program   test;
uses crt;
var
a,b,c,x:real;
Begin
     write('enter x');
     readln(x);
     if 0<x<2 then
Дальше не пишу так как компилятор выдаёт операнды имеют неприводимые типы (это паскаль abc такое пишет если что) и наводит курсор сразу после двойки , такое же у меня было с присвоением в прошлом упражнении q значение a<b<c<5 .
Что я делаю не так подскажите плыз  :'(

--- Конец цитаты ---
ещё проще. НЕТ ДВОЙНОГО УСЛОВИЯ В ПАСКАЛЕ (как вариант - я лох :lol:)

--- Код: --- if 0<x<2 then
--- Конец кода ---
замени на

--- Код: ---if (x>0) and (x<2) then
--- Конец кода ---
компилирует?

gepar:
Aku, угу , оно  , там правда в том упражнении по сути врядли имелось ввиду использование else и if (они дальше изучаются по этой книге ) , ну да хорошо что помог разобраться как задавать условие типа a<b<c .

Добавлено позже:
Это я первое уравнение только что сделал , сейчас попробую второе сделать .
topos84:

--- Цитата: Aku ---НЕТ ДВОЙНОГО УСЛОВИЯ В ПАСКАЛЕ
--- Конец цитаты ---
Даже я это вспомнил, хотя с паскалем уже лет 8 ничего не делал.  :)

Добавлено позже:

--- Цитата: gepar ---как задавать уравнения типа a<b<c
--- Конец цитаты ---
Хорошо себе уравнение, нечего сказать! ^_^
gepar:

--- Цитата: topos84 ---Хорошо себе уравнение, нечего сказать!
--- Конец цитаты ---
То я с радости что всё получилось не то написал    :)

Добавлено позже:
Ну и ещё маленький вопросик к спецам : если задать что переменная будет real ну и после всех операций и присваиваний ответ получаетcя 1,2000001E+000 ну или что-то подобное то как вернуть этому нормальный облик тобишь как сделать чтобы выводился результат в десятиричной системе  , подскажите пожалуйста ?
topos84:
gepar, советую тебе зачать новую тему: "Вспоминаем Турбо-Паскаль и решение задач на нем" - тебе будет радость от того, что люди будут помогать тебе решать твои задачи, а остальным, кто темой заинтересуется - ностальгия, понимаешь ли. :)
gepar:
topos84, а стоит ли ?Боюсь строка "решение задач на нем" отпугнёт всех да и мне не сколько решение задач  важно , а сколько помощ в тех строчках что не разобрался я  :)
Aku:

--- Цитата: gepar от 21 Октябрь 2009, 21:35:50 ---То я с радости что всё получилось не то написал    :)

Добавлено позже:
Ну и ещё маленький вопросик к спецам : если задать что переменная будет real ну и после всех операций и присваиваний ответ получаетcя 1,2000001E+000 ну или что-то подобное то как вернуть этому нормальный облик тобишь как сделать чтобы выводился результат в десятиричной системе  , подскажите пожалуйста ?

--- Конец цитаты ---
когда выводишь переменную добавь :5:4
типа
--- Код: ---writeln(s:5:4);
--- Конец кода ---
gepar:

--- Цитата: Aku ---writeln(s:5:4);
--- Конец цитаты ---
Код работает , а можно в двух словах почему нужно приписывать именно :5:4  ?Ну для общего понимания что же я за действие совершаю приписав :5:4 .
Mr2:
Запутался в функциях(C++). :blush:
Где писать объявление, где определение функции?
Как я понял функция это часть программы.
Тоесть в программу складывающую два числа можно вставить функцию которая будет прибавлять к результату "5".
как определить и как объявить функцию "прибавления к результату пятёрки"?
Как я понял в заголовочный файл мы записываем объявление. А куда записывать определение? :(
topos84:

--- Цитата: Mr2 ---Как я понял функция это часть программы
--- Конец цитаты ---
Функции и процедуры суть подпрограммы в Паскале. Отличие функции от процедуры в том, что с функцией можно обращаться как с переменной (присваивать ее значение другим переменным и пр.), а с процедурой нельзя.
HardWareMan:

--- Цитата: topos84 от 21 Октябрь 2009, 23:04:45 ---Функции и процедуры суть подпрограммы в Паскале. Отличие функции от процедуры в том, что с функцией можно обращаться как с переменной (присваивать ее значение другим переменным и пр.), а с процедурой нельзя.
--- Конец цитаты ---
Садись два. Функция от процедуры отличается тем, что функция возвращает результат в себе а процедура нет. Но, при объявлении: procedure SomeProc(var a,b:byte) и function SomeFunc(var a,b:byte):byte a и b тоже могут вернуть какие-то значения. Так работают всем известные blockread/blockwrite, например. Так что, с точки зрения возврата результата различаются только возвратом результата в себе. Например, можно сделать так:
function MyFunc(file:string; var size:dword):boolean;
А потом юзать как:
if MyFunc('c:\windows\explorer.exe',Size) then WriteLn('File size is '+Size) else WriteLn('Error while getting file size!');
Естественно, можно задавать значение по умолчанию для объявленных переменных. Единственный минус в том, что если ты при декларировании переменной в функции или процедуре указываешь именно переменную, то туда нельзя уже подставлять результат предыдущей функции (т.е. будет ошибка, если сделать MyFunc(InputBuffer,Size), если InputBuffer не переменная типа string, а функция, которая возвращает string)...

Это что касается паскалей. А человек вообще-то спросил за С++...
Henty:

--- Цитата: Mr2 от 21 Октябрь 2009, 21:58:20 ---Запутался в функциях(C++). :blush:
Где писать объявление, где определение функции?
Как я понял функция это часть программы.
Тоесть в программу складывающую два числа можно вставить функцию которая будет прибавлять к результату "5".
как определить и как объявить функцию "прибавления к результату пятёрки"?
Как я понял в заголовочный файл мы записываем объявление. А куда записывать определение? :(

--- Конец цитаты ---

Вроде бы там пофигу где писать. Я пишу до функции Main().
оформляется так же, как и Main

int MyFunc(parameter1,parameter2...)
{
operator1;
operator2;
...
return 1;
}
int - это тип значения, которое функция возвращает. Без возврата (ака процедура) надо писать void.
Потом идут параметры. Чтобы сделать их изменяемыми, перед параметром нужно вписать значок & (прим. void MyFunc(&parameter1, parameter2){}).
Ну дальше думаю поймёшь. Напомню, что return значение возвращает какое-то значение и выходит из функции. Если есть void, то return писать не надо.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии