Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1 ... страница 3страница 4страница 5страница 6

Примерная схема разработки программ:


  1. Анализ условия задачи, чёткая формулировка вопроса задачи.

  2. Выделение исходных данных, определение формы выходных данных.

  3. Детальное изучение задачи.

  4. Определение необходимых переменных и их типа.

  5. Составление алгоритма.

  6. Написание программы.

  7. Ввод программы и запуск её на исполнение.

  8. Отладка программы (поиск ошибок).

  9. Анализ работы и доработка программы.

Раздел 8. Решение задач.
Задачи на математические вычисления:

  1. Напишем самую простую программу вычисления результата сложения двух переменных s = a+b.

Program Slozenie; {заголовок программы}

var a,b,s:integer; (*раздел описания переменных*)

begin //начало раздела операторов

read(a,b); {занесение в ячейки a и b их значений}

s:=a+b; {вычисление значения s}

writeln(’сумма = ’,s); {вывод на экран текста ’сумма = ’ и значения s}

end. {конец программы}.


Напоминаю, что тексты, заключённые в скобки {}, (* *) и после // являются комментариями.


  1. Программа вычисления площади S прямоугольного треугольника, по двум катетам a и b:


Program PloshadTreug1;

Var a,b: integer, S:real; //объявление переменных

begin

writeln ('введите целые значения длины катетов a,b');


{вывод пояснительного текста на экран}

readln (a,b); //ввод данных (a и b) с клавиатуры

S:=a*b/2; //вычисление площади треугольника

writeln(’площадь треугольника = ’,S);

end.


  1. Эту же программу можно записать без объявления переменной S.
    Прямо в операторе вывода writeln можно вычислить значение площади по формуле, а вывести его значение на экран в виде числа, с пояснением.

Program PloshadTreug1;

Var a,b: integer; //объявление переменных

begin


writeln ('введите целые значения длины катетов a,b');
{вывод пояснительного текста на экран}

readln (a,b); //ввод данных (a и b) с клавиатуры

S:=; //вычисление площади треугольника

writeln(’площадь треугольника = ’, a*b/2);



{вывод пояснительного текста на экран и результата вычисления площади тр.}

end.


  1. Программа вычисления площади трапеции по высоте и двум основаниям:

Program PloshTrap;


var a,b,h,s: real; //объявляем переменные
begin
writeln(введите значения оснований и высоты');

readln(a,b,h); //вводим значения оснований и высоты

s:=0.5*(a+b)*h; //вычисляем площадь

writeln('Площадь трапеции = ',s); //выводим на экран

end.


  1. Программа, определяющая вид треугольника по его сторонам:

Program SravStoronTreug;

var a,b,c: real; //объявляем переменные

begin

writeln('Введите стороны a= b= c=');



readln(a,b,c);

if (a+b<=c)or (b+c<=a)or(b+c<=a) then

writeln('Треугольник не существует')

else


begin

if (a=b)and(b=c) then writeln('Треугольник - равносторонний');

if (a<>b)and(b<>c)and (a<>c) then writeln ('Треугольник - разносторонний');

if(sqr(a)=sqr(b)+sqr(c))or(sqr(b)=sqr(a)+sqr(c))or(sqr(c)=sqr(b)+sqr(a)) then writeln('Треугольник - прямоугольный');

if ((a=b)and(c<>a)) or ((b=c)and(a<>b))or ((c=a)and(c<>b))then writeln('Треугольник - равнобедренный');

end


end.


  1. Программа определения дня недели, по введённому номеру:

Program OperatorCase;

var den: integer; //объявляем переменные

begin


writeln('Введите номер дня недели (1..7): ');

readln(den);

case den of // Оператор выбора

1..5: writeln('Рабочий день');

6,7: writeln('Выходной');

else writeln('Введите правильно номер дня!');

end;

end.



  1. Программа сравнения введенных чисел (полная форма условного оператора if):

Program SravChisel;

var a,b: integer ; //объявляем переменные

begin

writeln('Введите a и b');



read(a,b);

if a

writeln(a,'<',b)

else


if a>b then

writeln(a,'>',b)

else writeln(a,'=',b);

end.



  1. Программа, выводящая на экран таблицу умножения на 3:

Program Umnoz3;

var n: integer; a: real; //объявляем переменные

begin


for n:=1 to 10 do

begin


a:=n*3;

writeln('3*',n,'=',a)

end;

end.


  1. Программа нахождения всех делителей числа a:

В цикле for последователь делим число a на параметр цикла начиная от 1 до значения числа a,и находим все числа, остаток от деления которых (mod) равен нулю. Если такие числа есть, то выводим их на экран их с помощью оператора write(i,' ');
Program Deliteli;

var a,i: integer; //объявляем переменные

begin

write('Введите число a=');



readln(a);

write('Делители числа a: ');

for i:=1 to a do

begin


if a mod i =0 then write(i,' ');

end;


end.
11. Программа вычисления квадрата и квадратного корня числа n:
Program Kvad_Kor;

var kv,n:integer; kor:real; //объявляем переменные

begin

writeln('Введите число n');



readln(n);

kv:=sqr(n);

kor:=sqrt(n);

writeln('Квадрат числа ',n,' = ',kv,' Корень числа ',n, ' = ',kor);

end.

12. Программа возведения в квадрат, с использованием функции power:

Program stepen2;

var n: integer; a:real; //объявляем переменные

begin

for n:=1 to 10 do



begin

a:=power(2,n);

writeln('2^',n,'=',a)

end;


end.

13. Программа вычисления длины отрезка по введённым координатам:

Program DlinaOtrezka;

var x1,y1,x2,y2,d:real; //объявляем переменные

begin // Вычисляем длину отрезка по теореме Пифагора

writeln(' Введите координаты точек A(X1,Y1) и B(X2,Y2)');

readln( x1,y1,x2,y2 );

d:=sqrt(sqr(y2-y1)+sqr(x2-x1));

writeln(' Длина отрезка  |AB|=',d);

end.
14. Программа возведения в степень любого числа:

Program StepenChisla;

var p,a: real; n,i: integer; //объявляем переменные

begin

writeln('Введите a,n: ');



read(a,n);

p:=1; //задаём начальное значение отличное от 0

for i:=1 to n do //организуем цикл

p := p * a; // Вычисляем степень числа

writeln(a,' В степени ',n,' = ',p);// выводим результат

end.
Задачи с числовыми последовательностями.





  1. Программа вычисления суммы чисел кратных 3, в диапазоне 0…100.

Program Summ3;

var s,i:integer; //объявляем переменные

begin


for i:=1 to 100 do //задаём диапазон от 0 до 100

if i mod 3 = 0 then //находим числа кратные 3

write(i:3);

writeln();

begin

s:=0;


for i:=1 to 100 do

if i mod 3 = 0 then

s:=s+i; //находим сумму чисел кратных 3

end;


writeln(' s = ',s); // выводим результат

end.



  1. Программа вычисления суммы нечетных чисел последовательности
    от 0 до 100, с помощью цикла repeat.

Program SumChet;

var i,s:integer; // i-индекс,s-накопитель суммы

begin i:=0; s:=0; //обнуление исходных значений i,s

repeat //оператор цикла повтора

i:=i+2; //нахождение чётных индексов.

s:=s+i; {т.к. индексы последовательности соответствуют значениям чисел, то к предыдущему значению s прибавляем значения чётных индексов}

until i>99; //условие выхода из цикла

writeln('s=',s); //вывод результата

end.



  1. Напишем программу нахождения суммы нечетных чисел последовательности от 0 до 100, с помощью цикла while.

Program SumChet1;

var i,s:integer; // i-индекс,s-накопитель суммы

begin i:=0; s:=0; //обнуление исходных значений i,s

while i<100 do //оператор цикла повтора c условием выхода из него

begin


i:=i+2; //нахождение чётных индексов.

s:=s+i; //вычисление суммы


end;

writeln('s=',s); //вывод результата

end.


  1. Напишем ту же программу нахождения суммы нечетных чисел последовательности от 0 до 100, с помощью цикла for.

Program SumChet3;

var i,s:integer; // i-индекс,s-накопитель суммы

begin s:=0;

for i:=0 to 100 do

begin


s:=s+i; //вычисление суммы

i:=i+1;

end;

writeln('s=',s); //вывод результата



end.


  1. Та же программа, с помощью цикла for и операции mod..
    Для поиска чётных чисел используется проверка чётности с помощью операции целочисленного деления mod. (Если остаток от деления числа на 2 равен 1 то, следовательно, число нечётное).

Program SumChet4;

var i,s:integer; // i-индекс,s-накопитель суммы

begin


for i:=0 to 100 do

begin


if i mod 2=1 then //нахождение нечётных индексов

s:=s+i; //вычисление суммы

end;

writeln('s=',s); //вывод результата



end.


  1. Простая сортировка 3-х чисел:

Program ProstSort;

var a,b,c: integer;

begin


readln(a,b,c);

if (c>b)and(b>a) then write(a,' ',b,' ',c);

if (b>c)and(c>a) then write(a,' ',c,' ',b);

if (c>a)and(a>b) then write(b,' ',a,' ',c);

if (a>c)and(c>b) then write(b,' ',c,' ',a);

if (b>a)and(a>c) then write(c,' ',a,' ',b);

if (a>b)and(b>c) then write(c,' ',b,' ',a);

end.


  1. Программа нахождения Max элемента массива и его порядкового номера:

Program MaxElement;

const n=100;

var a : array [1..n] of integer;

i,j,p,max : integer;

begin

for i:=1 to n do



begin

a[i]:=random(101);

write(a[i],' ');

end;


writeln;

max:=a[1];

p:=1;

for j:=2 to n do



begin

if a[j]>max then

begin

max:=a[j];



p:=j;

end;


end;

writeln('Max элемент = ',max, 'Его № = ',p);

end.



  1. Программа вычисления N-го числа последовательности (ряда) Фибоначчи, с использованием метода рекурсии.
    Последовательность Фибоначчи – это ряд чисел, в котором, начиная с третьего элемента ряда, каждое следующее число равняется сумме двух предыдущих.

Program FibonachiRekursia;

var n:byte; //объявляем переменные

function F(k:byte):word; //определяем функцию F, осуществляющую

begin //рекурсивный вызов, т.е. обращение к двум предыдущим своим

if k<2 then F:=1 else F:=F(k-1)+F(k-2); //значениям F(k-1)и F(k-2)

end;

begin


write('введите номер числа Фибоначчи ');

readln(N);

writeln(N,'-ое число Фибоначчи =',F(N));

readln


end.


  1. Та же задача, выполненная с помощью цикла, причём выводящая весь ряд чисел Фибоначчи, от 1 до N:

Program FibonachCicl;

var

i,N,k1,k2,kn:integer; //объявляем переменные



begin

writeln('Введите число N');

readln(N);

k1:=1; //первые два члена ряда равны = 1

k2:=1;

writeln('f1 = ',k1);



writeln('f2 = ',k2);

for i:=1 to n-2 do

begin

kn:=k1+k2; // kn - это число Фибоначчи и индексом i+2, т.к. вычисление



writeln('f',i+2,' = ',kn); // начинаем с 3-го элемента последовательности

k1:=k2; //переопределяем значения переменных, т.е. присваиваем

k2:=kn; //двум последним элементам значение двух предыдущих

end;


end.
Программы работы со строками.

  1. Программа конкатенации строк:

Program Concatenaсia;

var s,s1,s2: string; //объявляем переменные

begin

Writeln('Введите слова');



readln(s1,s2);

s:=Concat(s1,s2);

Writeln('Полученное слово = ',s);

end.



  1. Программа вычисления длины строки (количество символов в строке):

Program DlinaStroki;

var s: string; L:integer; //объявляем переменные

begin

writeln('введите строку');



readln(s);

L:= Length(s);

Writeln(’Длина строки = ’,L);

end.



  1. Программа вырезания n символов из строки s, начиная с позиции i, с помощью функции Copy(s,i,n):

Program VyrezSimvol;

var s,s1: string; i,n:integer; //объявляем переменные

begin


Writeln('введите слово');

readln(s1);

Writeln('введите с какого символа и сколько их вырезать');

Write('i = '); read(i);

Write('n = ');read(n);

s1:=Copy(s,i,n); // смотри раздел Стандартные процедуры и функции

Writeln('полученное слово = ',L);

end.



  1. Программа удаления из введённой строки s, первых n символов.

Program UdalenieSimv;

uses crt;

var s:string;n:integer;

begin


writeln('Введите строку и количество удаляемых символов');

readln(s,n);

delete(s,1,n);

writeln('после удаления получилось - ', s);

end.


  1. Программа поиска символа в строке:

Program PoiskSimvola;

var s,si:string; i:integer; f:boolean; //объявляем переменные

begin

writeln('Введите строку');



readln(s); //считываем строку

writeln(' Введите символ');

readln(si); //обозначаем искомый символ si

f:=false; //изначально считаем, что символа в строке нет

for i:=1 to length(s) do

begin //функцией copy проверяем совпадают ли

if copy(s,i,1)= si then f:=true //вырезаемые символы с искомым

end; //тогда логическая функция f примет значение true

writeln(f); //выводим результат

end.


  1. Программа вычисления количества слов в строке;

Program KolichSlov;

var s: string;

n,k: integer;

begin


writeln('ââåäèòå ñòðîêó ');

readln(s);

for n:=1 to length(s) do

begin


if (s[n]=' ') then

k:=k+1;


end;

writeln('Â ïðåäëîæåíèè ',k+1,' ñëîâ' );

end.


  1. Программа записи слова в обратном порядке (перевёртыш):

Program Perevorot;

var c,c1:string;

i:integer; //объявляем переменные

begin


writeln('Введите слово');

readln(c);

for i:=length(c) downto 1 do

c1:=c1+copy(c,i,1);

writeln(‘перевёртыш = ’,c1);

end.


Задачи с массивами.


  1. Программа ввода массива из 20-ти последовательных элементов:

Program VvodMass;

const n=20; //объявляем константу

var a: array [1..n] of integer; //объявляем массив

i:integer; //объявляем переменные

begin

a[1]:=1; //задаем значение первому элементу последовательности



write(a[1],' ');

For i:=2 to n do

begin

a[i]:=a[i-1]+1;



write(a[i],' ');

end;


end.


  1. Программа ввода массива из 20-ти чётных элементов:

Program Posledovatelnost;

const n=20;

var a: array [1..n] of integer; //Объявление массива

i,k:integer; //объявляем переменные

begin


a[1]:=0;

write(a[1],' ');

for i:=2 to n do

begin


a[i]:=a[i-1]+2;

write(a[i],' ');

end;

end.



  1. Программа ввода массива случайным образом, с помощью функции Random:

Program MassSluchayno;

Var a : Array[1..12] Of Integer; //объявляем массив из 12 чисел

i : integer;

begin

Randomize; //процедура генерации случайных чисел



for i := 1 to 12 do

begin


a[i] :=random(18)-5;//генерируем числа в диапазоне -5..12

Write('a',I,'=',a[i]:2,' ');//результат

end;

writeln();



end.


  1. Программа вычисления сумм отдельных строк матрицы:

Program SummStrok;

const n=3; m=3;

var a: array [1..n,1..m] of integer;

i,j,s,k,t:integer;

begin


for j:=1 to n do

begin


for i:=1 to m do

begin


a[i,j]:= random(101)-50;

write(a[i,j]:4);

s:= s+a[i,j];

end;


writeln(' s=',s);

s:=0;


end;

end.



  1. Программа ввода матрицы вручную:

Program VvodVruch;

const n=4; m=3; var a: array [1..n,1..m] of integer;

i,j:integer;

begin

for i:=1 to n do



begin

for j:=1 to m do

begin

readln(a[i,j]);



end;

end;


for i:=1 to n do

begin


for j:=1 to m do

begin


write(a[i,j]:3);

end;


writeln;

end;


end.


  1. Программа сортировки элементов массива пузырьковым методом:

Program SortPuzyrok;

const n=20;

var a : array [1..n] of integer;

i,j,k,prom : integer;

begin


for i:=1 to n do

begin


a[i]:=random(101);

write(a[i],' ');

end;

writeln;


for i:=2 to n do

for j:=1 to n do

if a[i]

begin


prom:=a[j];

a[j]:=a[i];

a[i]:=prom;

end;


for i:=1 to n do

begin


write(a[i],' ');

end;


end.


  1. Программа вычисления суммы элементов главной диагонали квадратной матрицы:

Program SummGlavDiag;

const n=3;

var a: array [1..n,1..n] of integer;

s,i,j:integer;

begin

s:=0;


for i:=1 to n do

begin


for j:=1 to n do

begin


a[i,j]:=random(101);

write(a[i,j]:5);

if i=j then s:=s+a[i,j];

end;


writeln;

end;


writeln('Сумма эл. главной диаг.',s);

end.



  1. Программа вычисления суммы элементов вспомогательной диагонали:

Program SummVspomDiag;

const n=3;

var a: array [1..n,1..n] of integer; s,i,j:integer;

begin


s:=0;

for i:=1 to n do

begin

for j:=1 to n do



begin

a[i,j]:=random(101);

write(a[i,j]:5);

if i=n-j+1 then s:=s+a[i,j];

end;

writeln;


end;

writeln('Сумма элементов вспом. диаг.= ',s);

end.
Все программы решения задач протестированы.

Список источников и использованной литературы:



  1. https://sunschool.math.rsu.ru/pabc/

  2. Turbo Pascal 7.0: Начальный курс; Фаронов В.В.; КноРус; 2005 г.;

  3. Turbo Pascal решение сложных задач Автор: В. В. Потопахин. Изд. БХВ-Петербург 2006г.

  4. К.Поляков

  5. Методическое пособие "Программирование на языке Turbo Pascal..”Пахомова А.В"

  6. Макаренко А.Е. Готовимся к экзамену по информатике. М: Айрис-пресс. 2002г.

  7. Л.В.Зайцева. Алгоритмические языки и программирование. М., МГГУ, 1996 (учебное пособие).

  8. Основы программирования на Турбо-Паскаль

  9. Полезные информатикам ссылки

  10. https://comp-science.hut.ru/didakt_i.html

  11. https://firststeps.narod.ru

  12. Pascal 7.0. Практическое программирование. Издание 2. Климова., М., ОМЕГА - Л, 2001

  13. Turbo Pascal в задачах и примерах. Культин, М., ОМЕГА - Л, 2001

  14. Turbo Pascal. Практикум. Немнюгин, М., ОМЕГА - Л, 2001

  15. Программирование в Turbo Pascal 7.0. Юбилейное изд., М., ОМЕГА - Л, 2001

Особая благодарность – Скрыльникову Дмитрию Михайловичу.


<предыдущая страница


Пособие по программированию на языке Pascal abc. Ерёмин О. Ф. 2009г. Моздок

Методическое пособие рассчитано на школьников 9-11 классов, а также может быть полезно учащимся других учебных заведений среднего образования, изучающих основы программирования

823.46kb.

25 09 2014
6 стр.


Практикум по программированию на языке паскаль учебно-методическое пособие

Касторнов А. Ф., Касторнова В. А. Практикум по программированию на языке паскаль. Учебно-методическое пособие. – М.: Иио рао, 2011. – 84 с

950.69kb.

25 09 2014
16 стр.


I основы языка высокого уровня турбо pascal алфавит языка Pascal

Прописные и строчные буквы Pascal'eм не различаются. Знаки «возведение в степень» и двойная кавычка в языке отсутствуют

327.58kb.

25 09 2014
1 стр.


Программирование на языке Turbo Pascal Материалы к урокам

В данной брошюре собраны материалы для подготовки и проведения по программированию на Паскале, когда идет освоение языка и выработка навыков составления программ

1207.28kb.

02 10 2014
15 стр.


1. Среда языка программирования Pascal abc

Блеза Паскаля. На основе языка Паскаль в 1985 г фирма Borland выпустила версию Turbo Pascal версии с этого времени язык Паскаль используется во всем мире в учебных заведениях в кач

537.72kb.

02 10 2014
4 стр.


Интегрированная среда программирования Turbo Pascal Язык программирования Pascal

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

479.79kb.

25 09 2014
6 стр.


Краткая теория по курсу информатика Типы данных языка программирования Turbo Pascal

В языке программирования Turbo Pascal все данные, используемые программой должны принадлежать к какому-либо типу данных. Некоторые из них

103.03kb.

13 10 2014
1 стр.


Международная дистанционная олимпиада по прикладному программированию для микропроцессорных систем на языке Ассемблер микроконтроллера стандарта mcs-51
37.58kb.

06 10 2014
1 стр.