По дороге шла девушка, прекрасная, как фея. Вдруг она заметила, что следом за ней идёт мужчина. Она обернулась и спросила:
— Скажи, зачем ты идёшь за мной?
Мужчина ответил:
— О повелительница моего сердца, твои чары столь неотразимы, что повелевают мне следовать за тобой. Про меня говорят, что я прекрасно играю на лютне, что посвящён в тайны искусства поэзии и что умею в сердцах женщин пробуждать муки любви. А тебе я хочу объясниться в любви, потому что ты пленила моё сердце!
Красавица молча смотрела некоторое время на него, потом сказала:
— Как ты мог влюбиться в меня? Моя младшая сестра гораздо красивее и привлекательнее меня. Она идёт за мной, посмотри на неё.
Мужчина остановился, потом обернулся, но увидел только безобразную старуху в заплатанной накидке. Тогда он ускорил шаги, чтобы догнать девушку. Опустив глаза, он спросил голосом, выражающим покорность:
— Скажи мне, как ложь могла сорваться у тебя с языка?
Она улыбнулась и ответила:
— Ты, мой друг, тоже не сказал мне правду, когда клялся в любви. Ты знаешь в совершенстве все правила любви и делаешь вид, что твоё сердце пылает от любви ко мне. Как же ты мог обернуться, чтобы посмотреть на другую женщину?
Пока варилась картошка и нечего было делать, еле выбрался из майна... и решил написать сие тутор. Продолжу за Шаманом, и Лексом и буду няшкой ^-^. Ну начнём: Выполнение арифметических действий: Паскаль великая штука, с помощью которой можно сделать практически всё, так вот: С помощью процедур вывода информации на экран можно выводить результаты арифметических операций. Вот простая запись:
Code
Begin Writeln('37*23+4='37*23+4); End.
На экране появиться: 37*23+4=855 А почему так? Да потому что мы вначале указали простое сообщение, не функцию, это как сказать: "Тридцать семь умножить на двадцать три плюс четыре." А в уме уже сосчитали 855. Вам помогут в этом таблицы:
Операция
Название
Пример
Результат
+
сложение
Writeln(5+6);
11
?
вычитание
Writeln(8?9);
-1
*
умножение
Writeln(4*2);
8
/
деление
Writeln(5/8);
6.250000000E-01
div
деление на целое
Writeln(9 div 4);
2
mod
остаток от деления
Writeln(19 mod 4);
3
Функция
Название
Пример
Результат
sin()
синус
Writeln (sin(3));
1.411...E-01
cos()
косинус
Writeln (cos(1));
5.403...E-01
arctan()
арктангенс
Writeln (arctan(2));
1.107...E+00
exp()
экспонента
Writeln (exp(2);
7.389...E+00
ln()
натуральный логарифм
Writeln(ln(10));
2.302...E+00
sqr()
возведение в квадрат
Writeln(sqr(5));
25
sqrt()
корень квадратный
Writeln(sqrt(5));
2.236...E+00
trunc()
целая часть
Writeln(trunc(8/3));
2
round()
округление до целого
Writeln(round(8/3));
3
frac()
дробная часть
Writeln(frac(4.5));
5...E-01
abs()
абсолютная величина
Writeln(abs(1-12));
11
Форма оператора
Примеры
Ifусловиеthenоператор;
if A=0 then A:=A+1;
if (A=0) and (B=0) then Writeln(' х-любое число. ');
if not((A<>0) and (B<=5)) or (B=0) then Writeln(A, B);
Ifусловиеthenоператор 1 elseоператор 2;
if A<0 then Writeln(' A<0') else Writeln(sqrt(A):0:5);
if D>=0 then begin X1:=(-B+sqrt(B*B-4*A*C))/(2*A); X2:=(-B-sqrt(B*B-4*A*C))/(2*A); end else Writeln(' Действительных корней нет ');
if A=0 then if B=0 thenWriteln('x любое ') else Writeln('Корней нет ') else Writeln('x=',-B/A:0:3);
В выше указанных таблицах вполне достаточно функций, чтобы выполнять нужные нам алгебраические действия) Например, для того чтобы вычислить значение арксинуса, достаточно иметь в наличии моск и арктангенс:
Code
arcsin(x) = arctg([x(-2)-1](-1/2);
А длят ого чтобы возвести неотрицательное число в любую степень, можно использовать функции exp() и обратную ей ln(): a(b)=exp(b*ln(a)). Заметьте! Есть ещё одна фигня, которую надо обязательно запомнить. Если мы захотим вывести значение выражения 3500/7, то вместо числа 50 мы увидим а экране следующее: 5.000000000000E+02. Why? о_О Чтобы так не было надо указывать формат, рассмотрим пример:
Code
Writeln(3500/7:9:2);
На экране появиться:____50.00(символ "_" означает пробел) Можно сказать так: Под вывод числа отведено 9 позиций(знакомест xD), из них 2 - под кол-во знаков после запятой. Думаю тут всё ясно...
Переменные
Для того чтобы юзать переменную в Паскале, её необходимо описать. Для описания переменных служит специальный раздел программы или как я бы сказал "тег": Var Этот тег должен быть до начала исполнения, то есть до начала Begin! Приведём пример, который выводит на экран значение квадратного корня числа:
Code
Var A: real; Begin Write('Введите число'); Readln(A); Writeln('квадратный корень числа', A:0:5, ' равен ', sqrt(A):0:5); Readln; End.
Слово real обозначает собой тип, к которому относиться переменная A. Процедура Readln() предназначена для ввода значения переменной. Вот такая бадья...
Ну так вот, давайте составим алгоритм решения задачи, которая будет вычислять сколько времени будет падать тело, брошенное с высоты h вниз без учёта сопротивления воздуха. В программе мы будем юзать 2 переменные H и T0
Code
Var Begin Write('Введите начальную высоту тела, м'); ReadLn(H); T0:=sqrt(2*H/9.8); Writeln('Тело будет падать с высоты ', H:0:2, ' м ', T0:0:2,' сек.'); End.
Тут думаю объяснять особо не надо.
Линейные алгоритмы
Как говорила моя знакомая учительница, с хорошим чувством юмора: "Для решения линейных уравнений, линейка не нужна". Пример: Требуется написать программу, которая решала бы самое простое линейное уравнение ax + b = 0 Как говорит кэп, должны рассматриваться случаи, когда a равно нулю и a не равно нулю, кроме того, при a = 0 возможны 2 случая: если b = 0, то уравнение обращается в тождество. Сделаем простую программу для решения уравнений:
Code
Var Begin Write('Введите коэффициенты A и B: '); Readln(A, B); if A=0 then if B=0 then Writeln(' Бесконечное множество решений ') else Writeln(' Решений нет ') else Writeln('x=',-b/a:0:3); Readln End.
Рассмотрим ещё 1 пример:
Code
Var C,D,F: real; Begin Write('Введите числа C и D'_; ReadLn(C,D); if C<D then begin F:=C; C:=D; D:=F; end; Writeln('C=',C:0:2,' D=',:0:2); Readln; End.
Циклические алгоритмы
Картошка почти сварилась, но и мы уже почти заканчиваем) Очень часто надо заставить некоторый фрагмент программы повторяться много раз. Кол-во повторений мб фиксированным., а мб заранее неизвестным, далее рассмотрим, что это за фигня...
Рассмотрим вначале с фиксированным числом повторов , это - Цикл For. В Паскале есть 2 формы записи for:цикл с автоинкрементом и цикл с автодекрементом о_О. Но это не так сложно, как кажется. В первом случае будет увеличиваться на 1, а во втором уменьшаться на 1. С автоинкрементом. (Forцикловая переменная: = начальное значение toконечное значениеdoоператор) С автодекрементом. (Forцикловая переменная: = начальное значение downtoконечное значениеdoоператор) Пример 1, вывести в строку числа 1,2,3,...10:
Code
Var i: integer; Begin For i:=to 10 do Write(i:4); End.
Пример 2, Вычислить сумму чисел 0(2)+0.1(2)+...+0.9(2)+1(2).
Code
Var i: integer; sum: real; Begin sum:=0; For i:=0 to 10 do sum:=sum+sqr(i/10); Writeln(sum); End.
Вот такие пирожки.
Уж перестану вас мучить и закончу, а на преобразовании условий и циклов, и остальную инф-ию, которая будет разлагать ваш моск оставлю на потом.
Ух ты! Вы прочитали до конца! Значит вам реально интересно... А теперь составьте несколько прог и поставьте мне плюсик ^-^ А да...и не забудьте назвать меня Няшкой! R.I.P.
Рассказывают, что на параолимпийских играх в Сиэтле девять участников забега на 100 метров, все с физическими или умственными недостатками, вышли на дистанцию. После стартового сигнала все побежали, не с одинаковой скоростью, но с одинаковым желанием показать свой лучший результат, закончить дистанцию и выиграть. Все, кроме одного юноши, который споткнулся, упал на дорожке и заплакал.
Остальные восемь участников услышали плач, замедлили бег, оглянулись назад и, не сговариваясь, развернулись и пошли к упавшему. Одна девушка с синдромом Дауна помогла юноше подняться, поцеловала и сказала: «Все скоро заживет».
Вдевятером, взявшись за руки, они пересекли финишную черту.
Есть подозрение, что Super-Tishka, мультиакк Червь-Мутант Оба из Швеции, похожий Id. =============================== Регистрационный IP:109.58.193.5 Дата регистрации: Среда, 23.11.2011, 20:20 Дата входа: Четверг, 08.12.2011, 23:29 =============================== Регистрационный IP:90.132.126.134 Дата регистрации: Понедельник, 28.11.2011, 23:44 Дата входа: Четверг, 08.12.2011, 18:46 R.I.P.
Мне вообще всё-равно Я понимаю, что споры ведут только к лучшему, к осознанию и для выяснения, что также является признаком эрудированности, но я придерживаюсь лени. Людей создал доктор зло!!1одын R.I.P.