Особенности решения вычислительных задач на ЭВМ — КиберПедия 

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

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Особенности решения вычислительных задач на ЭВМ

2018-01-04 214
Особенности решения вычислительных задач на ЭВМ 0.00 из 5.00 0 оценок
Заказать работу

Решение задач на ЭВМ имеет целый ряд особенностей. На рис. 1 приведен порядок решения задач связанных с математическими вычислениями.

 

 

Рис. 1. Порядок решения задач на ЭВМ

 

Назначение и общая характеристика языка программирования С

Язык С (произносится Си по правилам английского произношения) – универсальный язык программирования, разработанный Б. Керниган и Д.М.Ричи [1]. Он тесно связан с операционной системой UNIX, так как разрабатывался для ее создания. Однако язык не привязан жёстко к какой-то одной операционной системе или машине. Хотя он и назван «языком системного программирования», поскольку удобен для написания компиляторов и операционных систем, оказалось, что на нём столь же удобно писать большие программы другого профиля.

В С имеются управляющие конструкции, используемые в хорошо структурированных программах: составная инструкция ({…}), ветвление по условию (if-else), выбор альтернативы из многих (switch), циклы с пред-(while, for) и постусловием (do), а также средство прерывания цикла (break).

Для языка С разработано множество функций, которые содержатся в дополнительных модулях. Язык предоставляет возможность написания собственных функций и размещения их в отдельных библиотеках для облегчения работы с ними. Это позволяет создавать огромное число взаимодействующих программ и реализовывать практически любую функциональность.

Язык С – язык сравнительно «низкого уровня». Однако это вовсе не умоляет его достоинств. Просто он имеет дело с теми же объектами, что и большинство компьютеров, т. е. с символами, числами и адресами. С ними можно оперировать при помощи арифметических и логических операций, выполняемых реальными машинами.

Как и любой другой язык программирования, С не свободен от недостатков. Уровень старшинства некоторых операторов не является общепринятым, некоторые синтаксические конструкции могли бы быть лучше. Тем не менее, как оказалось, С – чрезвычайно эффективный и выразительный язык, пригодный для решения широкого класса задач.

Язык является основой объектно-ориентированного программирования, которое Вы будете изучать, начиная с 3-го курса. И тогда Вам потребуется новый первоисточник – язык программирования С++ [4] – и соответствующие методические указания. Следует подчеркнуть, что язык С полностью входит в С++ в качестве подмножества. Впрочем, с разделом “Инструкция программисту” указаний [3] Вам рекомендуется ознакомиться уже сейчас.

Пример простейшей программы

Приступим

Внимательно изучите нижеследующие примеры простейших программ на языке С. В них представлены основные операторы и принципы, которые могут помочь в освоении языка.

Три законченные программы выполняют одно и то же: определяют сумму двух чисел. Они построены по принципу нарастания удобства использования, то есть сервиса. Удобный сервис – это, в конечном счете, самое главное в современных программных продуктах. Конечно, нарастание сервиса требует дополнительных затрат и прежде всего временных (на написание и отладку). Всегда требуется компромисс между сложностью программы и требуемыми затратами.

Рассмотрим первую программу. Ниже приведён её текст.

#include <stdio.h>

void main(void)

{

// Простейшая программа суммирования двух чисел

int a, b, c;

a = 5;

b = 7;

c = a+b;

printf("Сумма = %d\n", c);

}

Давайте разберём программу построчно.

В строке #include <stdio.h> производится подключение библиотеки stdio.h к нашей программе. Библиотека – это набор предварительно реализованных функций, служащих для определённых целей. Библиотека stdio.h содержит основные функции по вводу и выводу, о чём можно судить исходя из названия (ST an D art I nput/ O utput – стандартный ввод/вывод).

Строка void main(void) описывает главную функцию. Именно с неё начинается выполнение любой программы, написанной на языке С. Затем идёт открывающаяся скобка, которая говорит о начале кода программы. Обратите внимание, что в конце программы стоит закрывающаяся скобка. Именно так компилятор понимает, что ему выполнять и до каких пределов.

Затем идёт строка // Простейшая программа суммирования двух чисел. В языке С сочетание // означает комментарий, то есть информацию, которая не будет учитываться при выполнении программы, но важна человеку-проектировщику для понимания функций, деталей и тонкостей алгоритма. Подобное сочетание может встречаться в любом месте и всё, что находится после него до конца строки, считается комментарием.

Далее идёт строка int a, b, c;. Она означает объявление целочисленных переменных с именами a, b и c и выделение под них памяти. Обратите внимание, что язык С чувствителен к регистру и переменные a и A – это разные переменные.

Следующие две строки: a = 5; и b = 7; одинаковы по смыслу, но различны по содержанию. Здесь осуществляется присвоение переменным a и b значений соответственно 5 и 7.

В строке c = a+b; осуществляется вычисление результата сложения значений переменных a и b, с последующим присвоением этого значения переменной c.

Последняя значащая строка программы printf("Сумма = %d\n", c); нуждается в гораздо большем пояснении. Именно ради этой строки, а, точнее говоря, ради функции printf мы подключали стандартную библиотеку ввода-вывода. Данная функция предназначена для вывода на экран информации, представленной в определённом виде. За формат представления информации отвечает первый параметр "Сумма = %d\n". Здесь все символы означают сами себя за исключением двух групп: %d и \n. Группа %d означает, что значение соответствующего параметра функции printf будет отображаться в форме целого числа (d - digit - цифра) – в данном случае таковым параметром является переменная c; \n означает, что встретив такую группу курсор перейдёт на начало следующей строки и вся последующая информация будет выводиться с первой позиции новой строки.

Рассмотренные программы построены по одному принципу. Алгоритм, примененный в них, относится к классу линейных алгоритмов. Для этого класса алгоритмов характерно последовательное выполнение действий и исполнение этой последовательности не зависит от значений данных вводимых или вычисленных в ходе исполнения алгоритма.

Естественно, что многие аспекты текста программы остались за рамками данного описания. Их всегда можно посмотреть в соответствующей литературе, например [1, 2, 4].

Расширяем функциональность

К числу недостатков указанной выше программы можно отнести то, что для суммирования других чисел необходимо изменять код, производить перекомпиляцию и заново запускать программу на выполнение. Теперь настало время рассмотреть программу посложнее. Вот её текст.

#include <stdio.h>

void main(void)

{

// Программа суммирования двух чисел

int a, b, c;

printf("Ведите два числа - целых\n");

scanf("%d %d", &a, &b);

c = a+b;

printf("Сумма = %d\n", c);

}

Жирным здесь выделены те места, которые изменены по сравнению с предыдущей версией. Как видно, изменений не так много. Но они достаточно существенны.

В строке printf("Ведите два числа - целых\n"); вряд ли мы сможем найти для себя что-нибудь новое, поэтому сразу же перейдём дальше по изменениям. Стоит лишь оговорится, что правильное пояснение предполагаемых действий пользователя является важной задачей программиста: вряд ли кому-нибудь захочется работать с продуктом, где ничего не ясно.

В строке scanf("%d %d", &a, &b); происходит вызов функции scanf. Эта функция, так же, как и функция printf, содержится в библиотеке stdio. Назначение функции – ввод данных пользователем с клавиатуры. Данные вводятся в соответствующем формате, описанном первым параметром. Помещаются данные в переменные, указанные в качестве остальных параметров.

Обратите внимание, что переменные в таком обращении указываются со знаком &. Это означает передачу указателя на переменную (ее адреса). Подробнее об этом вы узнаете позднее или прочтёте в соответствующей литературе, а сейчас стоит просто это учитывать.

 


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

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

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.