Автор работы: Дина Жолобова, 04 Октября 2010 в 20:06, курсовая работа
В наше время программированием занимаются многие ПК-пользователи. И это вполне объяснимо: с помощью программ можно решать достаточно сложные задачи – задачи, которые могут отнять у человека много драгоценных часов, в то время как компьютер решит их за доли секунд. Кроме того, поработав какое-то время с чужими программами, хочется создать нечто свое, родное. И тогда возникает вопрос: с чего начать? Выбор языков программирования на данный момент очень велик: Basic, Pascal, C, Perl и так далее. Basic – самый легкий из этого списка, его не зря называют основой программирования, так как обычно начинают именно с него. Однако этот язык недостаточно мощный, поэтому сейчас многие начинают с чего-то более серьезного, например, с Паскаля (Pascal)1.
Именно с ним в данной курсовой работе мы и будем работать. В качестве среды для разработки приложений на этом языке выберем среду языка Delphi, который развился из Турбо Паскаля, а тот, в свою очередь, – из Паскаля.
Delphi позволяет разрабатывать приложения Windows. Но в этой работе мы рассмотрим только создание программ в стиле MS-DOS, называемых консольными приложениями.
Введение 3
Глава 1. Простейшие арифметические и логические операции 5
Глава 2. Линейные программы 9
Глава 3. Ветвящиеся программы 11
Глава 4. Циклические программы 14
Глава 5. Двумерные массивы 16
Глава 6. Строковый тип данных 21
Глава 7. Операции с файлами. 24
Заключение 30
Список использованной литературы 31
Разобравшись с методом решения задачи, перейдем к ее реализации на языке Паскаль. Нам понадобятся две переменные типа integer – N и M. В переменную M запишем конечный результат программы – последнюю цифру числа N, а затем выведем на экран.
Приведем полный код программы:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var N,M: integer;
begin
write ('Введите натуральное число: ');
readln(N); // Вводим натуральное число
M:=N mod 10; // вычисляем остаток от деления на 10
Write ('Число ',N,' оканчивается на цифру ',M); // выводим результат
readln;
end.
Экранная форма с результатами работы программы:
Задача
3.7. Написать программу, проверяющую,
поместится ли равносторонний треугольник
площадью Р в круг площадью
S, или круг поместится в треугольник,
или они не поместятся друг в друга.
Решение.
Составим алгоритм решения задачи.
Итак, чтобы определить, поместится ли треугольник в круг, или круг поместится в треугольник, необходимо:
Очевидно, что для того чтобы треугольник вошел в круг, его радиус не должен быть меньше радиуса описанной окружности около треугольника; а для того чтобы круг вошел в треугольник, радиус круга не должен превышать радиус вписанной окружности в треугольник.
Перед тем как приступить к разбору кода программы, отметим, что всем переменным следует присвоить вещественный тип real.
Как видите, на сей раз мы пронумеровали строки – для удобства.
Радиус круга S (строка 11) вычисляется по формуле2: . Перед тем, как вычислять радиус описанной окружности около треугольника, необходимо сначала найти его стороны. Так как нам дан равносторонний треугольник, наша задача существенно упрощается, потому что, как известно, у такого треугольника все стороны равны, и, следовательно, его площадь рассчитывается по следующей формуле: . Исходя из этой формулы, получаем, что (строка 12). Функция sqrt(x) извлекает квадратный корень из числа x, причем необходимо помнить, что возвращаемый результат всегда вещественного типа.
Найдя сторону a, мы можем вычислить радиус описанной () и радиус вписанной () окружности для данного треугольника: (строка 13) и (строка 14). Далее нам остается только сравнить. В строке 15 говорится, что если и , то они не войдут друг в друга; если то треугольник войдет в круг (строка 16); а если , то круг поместится в треугольнике (строка 17). Давайте теперь посмотрим результаты работы программы (рис. 3.3.):
Задача
4.7. Написать программу, позволяющую
вычислить с помощью цикла: ,
где n задается с клавиатуры.
Решение.
Вначале, как обычно, составим алгоритм, по которому будет решаться наша задача.
В этой задаче нам необходимо вычислить выражение , в котором n – 1 суммируется с самим собой m раз. Заметим, что переменная m в данном случае является константой3. Теперь приступим к разбору кода программы.
Итак, вводим число n (строка 9). Переменной s, предназначенной для накапливания суммы, присваиваем изначально число n (строка 10). Затем организовываем цикл for…do, параметром которого выступает переменная i (строка 11). Если значение i меньше или равно m, то выполняется тело цикла, в котором к переменной s прибавляется выражение n – 1 (строка 12). После завершения цикла к s прибавим оставшиеся числа: 2 и 1(строка 13). И в четырнадцатой строке мы выводим результат нашего выражения на экран, как показано на рис. 4.1.
Задача
7.7. В двухмерном массиве поменять местами
строки, содержащие максимальный и минимальный
элементы.
Решение.
Составим алгоритм.
В этой задаче снова удобнее использовать константы – n и m, в которых будут храниться размеры двухмерного массива, т.е. количество столбцов и строк соответственно.
const n=3; //количество столбцов
const m=3; //количество строк
var B:array [1..n, 1..m] of integer;
Итак, вначале нам необходимо ввести данные в массив. Для этого воспользуемся циклом for…do.
for i:=1 to n do //столбцы
for j:=1 to m do //строки
begin
write ('B[',i,', ',j,'] = ');
readln (B[i,j]); //Ввод элемента матрицы
end;
Когда i превысит n, цикл завершится и, если текущий столбец – не последний (то есть j < m), повторится снова. Таким образом, массив заполняется построчно.
Дальше переходим к поиску минимального элемента матрицы. Предположим, что минимальным является первый элемент в первой строке (B[1,1]), и присвоим переменной k значение B[1,1], а min – единицу. Затем снова организуем цикл for…do и сравним переменную k со всеми последующими элементами массива; если нашлось значение меньше k, записываем его в переменную k, а номер текущей строки – в min.
Поиск максимального значения осуществляется по тому же принципу, с той лишь разницей, что в этом случае k хранит предположительно максимальный элемент, а номер искомой строки записывается в переменную max.
k:=B[1,1];
min:=1;
for i:=2 to n do //столбцы
for j:=1 to m do //строки
if B[i,j]<k then //если очередной элемент массива меньше k
begin
k :=B[i,j]; //присвоить k этот элемент
min :=i; //и присвоить min номер этой строки
end;
//Так же находим и максимальное значение:
k:=B[1,1];
max:=1;
for i:=2 to n do
for j:=1 to m do
if B[i,j]>k then
begin
k :=B[i,j];
max:=i;
end;
Теперь нам осталось только поменять строки двухмерного массива, содержащие минимальный и максимальный элемент, местами, то есть перезаписать их друг в друга. Но как это сделать? Ведь если мы напишем, например, так: B[1,1] = B[2,3] – то значение B[1,1] пропадет. В этом нам поможет наша вспомогательная переменная k. Она будет хранить значение этого элемента массива.
Информация о работе Разработка консольных приложений в среде Delphi