русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Основы алгоритмизации и программирования


Дата добавления: 2015-06-12; просмотров: 997; Нарушение авторских прав


ОГЛАВЛЕНИЕ

Лабораторная работа № 3. Циклы. 3

Лабораторная работа № 4. Одномерные массивы. 7

Лабораторная работа № 5. Двумерные массивы. 11

Лабораторная работа № 6. Множества 19

Лабораторная работа № 7. Строки. 21

Лабораторная работа № 8. Файлы. 24

Лабораторная работа № 9. Записи. 27

Лабораторная работа № 10. Подпрограммы. 30

Библиографический список. 32

 


Лабораторная работа № 3. Циклы

Задание 1.Определите, что вычисляется в алгоритме. Составьте программу по данной блок-схеме.

Начало
n
S = 0
S
Конец
S = S + 1/i
i= 1, n, 1

Рис. 4. Цикл с параметром

Задание 2.Составьте программу для вычисления суммы ряда

1 + 1/3 + 1/5 + 1/7 + …

Programabc;

vars, t:real;

i,n:integer;

Begin

write('введите n');

readln(n);

s:=0;

fori:=1 ton do

Begin

t:=2*i-1;

s:=s+1/t;

end;

write('сумма равна ',s);

readln;

end.

Задание 3.Составьте программу для вычисления факториала

(n! = 1·2·3·…·n).

Programabc;

varn, i, k:real;

Begin

write('введите n');

readln(n);

ifn=0 thenwriteln('0!=1') else

ifn<0 thenwriteln('факториал определён только для неотрицательных чисел') else

i:=0;

k:=1;

Repeat

k:=k*(i+1);

i:=i+1;

untili=n;

write(n,'!=',k);

readln;

end.

Задание 4.Составьте программу, которая выводит на экран таблицу степеней двойки от 0 до 10.

programstepen;

Var

i: integer;

Begin

fori := 0 to10 do

writeln('2^',i,' ',exp(ln(2)*i));

end.

Задание 5.Составьте программу, которая выводит на экран таблицу степеней для произвольного числа.

programstepen;

Var

i,s,n,t: integer;

Begin

writeln('введите число, начальную и конечную степени');

readln(s,t,n);

fori:=t ton do



writeln(s,'^',i,' ',exp(ln(s)*i));

end.

Задание 6.Определите, что вычисляется в программе.

Program Example5;

Uses Crt ;

Var n, m: integer ;

Begin

Clrscr;

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

Readln (n, m);

While m<>n do

Begin

if m > n then m:=m-n else n:=n-m;

End;

Writeln (m) ;

End.

Наибольший общий делитель

Задание 7.Определите, что вычисляется в программе, и составьте к ней блок-схему.

Program Example6;

Uses Crt ;

Var x, y: real ;

Begin

Clrscr;

x:= 1;

While x <= 10 do

Begin

y:= sqr(x) + 1;

Writeln(x:5:1, y:10:1);

x:= x+0.5;

End;

End.

Выводит число, на 1 большее квадрата x

Задание 8.Составьте программу, которая выводит таблицу значений функции y = 2x2 + 3x – 9 в диапазоне от – 3 до 3 с шагом 0,5.

Рекомендуемый вид экрана:

---------------

Х | У

---------------

– 3 | 0

– 2,5 | – 4

– 2 | – 7

… | …

3 | 18

---------------

 

Доработайте программу, чтобы диапазон и шаг можно было вводить при запуске программы.

Programprogram;

var a,b,dx,y:real;

Begin

Repeat

writeln('Введите начало и конец диапазона:');

readln(a,b);

until a<=b;

writeln('Введите шаг: ');

readln(dx);

while a<=b do

Begin

y:=4*a+3*a-9;

writeln(a:4:2,y:9:2);

a:=a+dx;

end;

end.

Задание 9.Составьте программу, в которой необходимо отгадать зашифрованное слово (например, КОБЯЛО). Пользователь вводит ответ до тех пор, пока не отгадает слово из этих букв. Как только введено правильное слово, программа завершается, и на экран выводится сообщение «Вы угадали с N попытки!».

ProgramExample;

consta = 'КОРОВА';

constb = 'ОВКОРА';

Varc:string;

n:integer;

Begin

WriteLn(b,' Какое слово загадано?');

Repeat

ReadLn(c);

n:= n+1;

Untilc=a;

WriteLn('Вы угадали c ',n,' попытки!');

End.

Задание 10. Составьте программу, которая находит все простые числа в диапазоне от A до B.

uses crt;

var a,b,i,s,j:integer;

Begin

write('Введите A=');

readln(a);

Repeat

write('Введите B=');

readln(b);

until b>a;

writeln('Простые числа в диапазоне [',a,';',b,']');

for i:=a to b do

Begin

s:=0;

for j:=2 to i-1 do

if i mod j=0 then inc(s);

if (s=0) then write(i,' ');

end;

end.

Задание 11. Составьте программу, которая находит все совершенные числа в диапазоне от A до B.

programprimer11;

usescrt;

vars,n,i,A,B:integer;

Begin

clrscr;

writeln ('Введите целые числа [A,B]: ');

readln (A,B);

forn:=A toB do

Begin

s:=0;

fori:=1 ton do

if(n modi=0) and(n>i) then begins:=s+i;

end;

if((n divi)=(n/i)) and(s=n) then

writeln('Совершенное число: ',n,' ');

read;

end;

readln;

end.


Лабораторная работа № 4. Одномерные массивы

Задание 1.В алгоритме вычисления суммы и количества положительных элементов заполните пустые места.

Начало
n
sum:=0
i
Конец
i=1, n, 1
count:=0
inc(count)
sum, count
i=1, n, 1
sum:=sum+a[i]
a[i]>0
Да
Нет

Рис. 5. Одномерный массив

 

Задание 2.Составьте блок-схему к следующей программе:

 

Program Example7;

Uses crt;

Var a: array[1..100] of integer;

i, n, max: integer;

Begin

Clrscr;

Write('n=');

Readln(n);

for i:=1 to n do Begin

Write('a[',i,']=');

Readln(a[i]);

End;

max:=a[1];

for i:=2 to n do if a[i]>max then max:=a[i];

Writeln('max=',max);

End.

Задание 3.Составьте программу, которая находит максимальный и минимальный элементы в одномерном массиве и их порядковые номера.

const n = 10;

Var

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

i,max,min,e,y:integer;

Begin

randomize;

for i:=1 to n do

a[i]:=random(101)+1;

for i:=1 to n do

write(a[i],' ');

writeln;

max:=a[1]; min:=a[1];

for i:=1 to n do begin

if a[i]>max then begin max:=a[i]; e:=i;end;

if a[i]<min then begin min:=a[i]; y:=i;end;

end;

writeln('Элемент №',e,' - максимальный, он равен = ',max);

writeln('Элемент №',y,' - минимальный, он равен = ',min);

end.

Задание 4.Составьте программу, в которой меняются местами максимальный и минимальный элементы.

programprimer4;

Var

A: array[1..10] ofinteger;

i,p,m,m1,p1: integer;

Begin

randomize;

p:=1;

fori := 1 to10 do

Begin

A[i] := random(100)-50;

write (a[i]:3);

ifa[i]>p then

Begin

p:=A[i];

m:=i;

end;

ifa[i]<p1 then

Begin

p1:=A[i];

m1:=i;

end;

end;

writeln;

A[m]:=p1;

A[m1]:=p;

fori := 1 to10 do

write (a[i]:3);

readln;

end.

Задание 5.Установите правильный порядок команд в программе, и определите, что в ней вычисляется.

Program Example8;

Uses crt;

Var a, b:array[1..100] of integer;

i, n, k: integer;

Begin

Write('n=');

Readln(n);

k:= 0;

for i:= 1 to n do Begin

Write('a[', i, ']=');

Readln(a[i]);

End;

for i:=1 to n do

if a[i] < 0 then Begin

k:= k+1;

b[k]:= i;

End;

for i:= 1 to k do Write(b[i]:4);

Readkey

End.

Кол-во отрицательных элементов и их индексы заносятся в новый массив.

Задание 6.Определите, что выполняется в программе.

Program Example9;

Uses crt;

Var a: array[1..100] of integer;

i, j, n, m:integer;

Begin

Clrscr;

Write('n='); Readln(n);

for i:= 1 to n do Begin

Write('a[', i, ']=');

Readln(a[i]);

End;

for j:= 1 to n-1 do

for i:= 1 to n-j do Begin

if a[i] < a[i+1] then Begin

m:= a[i];

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

a[i+1]:= m;

End;

End;

for i:= 1 to n do Write(a[i]:5);

End.

Вывод одномерного массива в порядке убывания значений его элементов.

Задание 7.Составить программу, которая преобразует одномерный массив таким образом, чтобы сначала шли отрицательные, затем нулевые и положительные элементы.

Programprimer7;

Vara: array[1..100] ofinteger;

i, n:integer;

Begin

Write('n=');

Readln(n);

fori:= 1 ton do Begin

Write('a[',i,']=');

Readln(a[i]);

End;

fori:= 1 ton do begin

ifa[i] < 0 thenwrite(' ',a[i]);

end;

fori:= 1 ton do begin

ifa[i] = 0 thenwrite(' ',a[i]);

end;

fori:= 1 ton do begin

ifa[i] > 0 thenwrite(' ',a[i]);

end;

readln;

End.


 

Лабораторная работа № 8. Файлы

Задание 1.Определите, что выполняется в программе. В фигурных скобках укажите назначение команд.

Program Example15;

Uses crt;

Var f: text;

st: string;

Begin

Assign(f, 'C:\Example.txt'); {устанавливает связь между переменной и физическим файлом на диске}

Rewrite(f); { запись в файл }

Writeln('Введите текст ');

Read(st);

Write(f, st); { запись в файл f строку st }

Close(f); { закрыть файл }

End.

 

Задание 2.Определите, что выполняется в программе и для чего предназначена команда Append?

Program Example16;

Uses crt;

Var f: text;

i, n, x: integer;

Begin

Assign(f, 'C:\Example.txt');

Append(f); {открыть файл и добавить в конец}

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

Readln(n);

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

for i:= 1 to n do Begin

Readln(x);

Write(f, x:4);

End;

Close(f);

End.

Задание 3.Определите, что выполняется в программе. В фигурных скобках запишите назначение команд.

Program Example17;

Uses crt;

Var f: text;

st: string;

Begin

Clrscr;

Assign(f, 'C:\Example.txt');

Reset(f); { открыть файл для чтения }

While not EOF(f) do { пока не конец файла f }

Begin

Readln(f, st); { читать строку из файла f }

Writeln(st); { вывод строки на экран }

End;

Close(f);

Readln

End.

 

Задание 4.Разработайте программу, которая создает файл date.txt и записывает в него n случайных чисел в диапазоне от 5 до 30.

Programzadanie;

Varf: text;

n,i:integer;

a:array[1..100] ofinteger;

Begin

Assign(f, 'C:\PABCWork.NET\date.txt');

Rewrite(f);

write('введите n= ');

readln(n);

fori:= 1 ton do

begina[i]:= 5+random(25);

Writeln(f, a[i]);

end;

Close(f);

End.

Задание 5.Разработайте программу, которая считывает информацию из файла date.txt, находит максимальное число и общую сумму. Результат запишите в файл result.txt.

Programprogram;

UsesCRT;

Varf,z: Text;

a,max,S: integer;

Begin

CLRSCR;

Assign(f, 'C:\PABCWork.NET\date.txt');

Reset(f);

Assign(z,' C:\PABCWork.NET\result.txt');

Rewrite(z);

max:=a;

Close(f);

Assign(f, 'C:\PABCWork.NET\date.txt');

Reset(f);

While noteof(f) do

Begin

ReadLn(f,a);

ifa>max thenmax:=a;

Inc(S,a);

End;

Write(z,'Сумма: ',S,' Максимальное число: ',max);

WriteLn('Сумма: ',S,' Максимальное число: ',max);

Close(f);

Close(z);

ReadLn;

End.

Лабораторная работа № 9. Записи

Задание 1.Наберите текст программы и познакомьтесь с типом данных Record. Определите, что выполняется в программе.

Program Example18;

Type STR= Record

Fam: string;

B1, B2, B3, B4, B5: 2..5;

SB: real;

End;

Var Tbl: array[1..50] of str;

i,n: integer;

Begin

Write('n=');

Readln(n);

For i:=1 to n do

Begin

Write('FIO:'); Readln (Tbl[i].FAM);

Write('Ozenki: ');Readln(Tbl[i].B1, Tbl[i].B2,Tbl[i].B3, Tbl[i].B4, Tbl[i].B5);

End;

Writeln('Sredniy ball');

For i:=1 to n do

Begin

Tbl[i].SB:=(Tbl[i].B1+Tbl[i].B2+Tbl[i].B3+ Tbl[i].B4+Tbl[i].B5)/5;

Writeln(Tbl[i].FAM,' – ', Tbl[i].SB:5:2);

End;

End.

Средний балл студентов

 

 

В программе содержится много повторяющихся данных. Для её упрощения воспользуйтесь оператором присоединения With.

For i:= 1 to n do Begin

With Tbl[i] do Begin

Write('FIO:'); Readln (FAM);

Write('Ozenki: ');

Readln(B1, B2, B3, B4, B5);

End;

End;

Writeln('Sredniy ball');

For i:= 1 to n do Begin

With Tbl[i] do Begin

SB:= (B1+B2+B3+B4+B5)/5;

Writeln(FAM,' – ',SB:5:2);

End;

End;

 

Задание 2.Доработайте программу, чтобы данные о студентах и их средние баллы записывались в файл.

Type

STR = Record

Fam: string;

B1, B2, B3, B4, B5: 2..5;

SB: real;

End;

 

Var

Tbl: array[1..50] ofstr;

i, n: integer;

k: text;

 

Begin

assign(k, 'D:\sredniy ball.txt');

rewrite(k);

Write('n=');

Readln(n);

fori := 1 ton do

withTbl[i] do

Begin

Write('FIO:'); Readln(FAM);

Write('Ozenki: ');

Readln(B1, B2, B3, B4, B5);

end;

Writeln('Sredniy ball');

fori := 1 ton do

Begin

withTbl[i] do

Begin

SB := (B1 + B2 + B3 + B4 + B5) / 5;

writeln(FAM, ' – ', SB:5:2);

Write(k, FAM, ' – ', SB:5:2);

 

end;

end;

close(k);

end.

 


 

Лабораторная работа № 10. Подпрограммы

Задание 1. Исправьте ошибки в программе.

FunctionV(R, H: real): real;

Begin

V:= pi*sqr(R)*H;

End;

Varx,a,b: real;

Begin

a:= V(3,4);

b:= V(2,4);

Writeln('V1=', a);

Writeln('V2=', b);

x:= a - b;

Writeln('V1 – V2=', x:4:1);

End.

Задание 2. Посмотрите пример функции вычисляющей факториал числа.
В основной программе посчитайте выражение y = (m! + k!)/s!

Var

m,k,s:integer;

y:real;

Functionfactorial(n: byte): longint;

Begin

if(n = 0) or(n = 1) thenfactorial:= 1

elsefactorial:= n * factorial(n - 1);

End;

Begin

readln(m ,k ,s);

m:=factorial(m);

k:=factorial(k);

s:=factorial(s);

y:= (m + k)/s;

writeln('y= ',y);

end.

 

Задание 3. Составьте функцию, вычисляющую логарифм с произвольным основанием logab.

vara,b,logarifm:real;

Begin

writeln('введите основание');

readln(b);

writeln('введите показатель логарифма');

readln(a);

logarifm:=ln(a)/ln(b);

writeln('log=',logarifm);

end.

 

 

Задание 4. Составьте функцию для вычисления площади кольца.

 

Рис. 7. Кольцо

varr1, r2: integer;

s: real;

Functionploshad(r1, r2: integer) : real;

Begin

ploshad:= pi*(r1*r1-r2*r2)

End;

Begin

writeln('Введите внешний радиус кольца');

readln(r1);

writeln('Введите внутренний радиус кольца');

readln(r2);

s:=ploshad(r1, r2);

writeln('Площадь кольца равна', s);

readln;

end.

Задание 5. Наберите код программы и посмотрите пример использования процедуры Color.

Program Example20;

Uses Crt;

Procedure Color(x, y: word);

Begin

TextColor(x);

TextBackGround(y);

End;

Begin

Color(1,5);

Write('Hello ');

Color(1,3);

Writeln('student!');

Readln;

End.

 

Задание 6. Доработайте программу, чтобы цвет фона и цвет текста вводились пользователем при запуске программы.

programptimer6;

UsesCrt;

ProcedureColor(x, y: word);

Begin

TextColor(x);

TextBackGround(y);

End;

varn,m,k,p:byte;

Begin

read(n,m);

read(k,p);

Color(n,m);

Write('Hello ');

Color(k,p);

Writeln('student!');

Readln;

End.


 

Библиографический список

1. Златопольский Д. М. Программирование: типовые задачи, алгоритмы, методы / Д. М. Златопольский. – Москва: БИНОМ. Лаборатория знаний, 2007. – 223

2. Информатика: Учебник / Б. В. Соболь, А. Б. Галин, Ю. В. Панов,
Е. В. Рашидова, Н. Н. Садовой. – Изд. 3-е, дополн. и перераб. – Ростов н/Д: Феникс, 2007. – 446 с.

3. Окулов С. М. Основы программирования: учебник / С. М. Окулов. – Изд.
5-е, испр. – Москва: БИНОМ. Лаборатория знаний, 2010. – 440 с.

4. Потопахин В. В. Современное программирование с нуля!: учеб. пособие / Потопахин В. – Изд. 2-е, испр. – Москва: ДМК-Пресс, 2011. – 240 с.

5. Рапаков Г. Г. Turbo Pascal для студентов и школьников: учебник /
Г. Г. Рапаков, С. Ю. Ржеуцкая. – Санкт-Петербург: БХВ-Петербург, 2007. – 352 с.

6. Фаронов В. В. Turbo Pascal 7.0. Практика программирования: учеб.
пособие / В. В. Фаронов. – Москва: Кнорус, 2007. – 416 с.

 


 

Учебное электронное текстовое издание

 

Паклина Валентина Михайловна

Паклина Елена Михайловна

 

Основы алгоритмизации и программирования

 



<== предыдущая лекция | следующая лекция ==>
Результаты расчета | Эволюция, сущность, типы и значение брендов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.039 сек.