Изучить способы вывода на экран таблицы значений. - Циклические алгоритмы
Одномерные массивы в СИ
Массив - некие упорядоченные данные одного типа. Смысл этой всей упорядоченности состоит в том что доступ к элементам происходит через индекс, т. е через порядковый номер элемента тип_массива имя_массива[размер №1][размер №2]...[размер №N];
Примеры объявления одномерного массива:
Int a[2];
Double b[20];
Обращение к конкретному элементу одномерного массива в языке СИ осуществляется так: указываем имя массива, а потом в квадратных скобках индекс элемента в этом массиве. в СИ отсчет ведется начиная с нуля, т. е обращение к первому элементу массива будет иметь вид: a[0], а ко второму - a[1] и тд.
На практике наиболее часто используются только:
Одномерные массивы (по другому говоря векторы);
Двумерные массивы (или же что тоже самое матрицы).
Объявление одномерного массива в си (далее просто массив) имеет следующий синтаксис:
Тип_данных имя_массива[размер];
Размер массива - любое положительное, целое число. В стандарте С89 значение должно было указываться сразу при написании кода, т. е быть константой. В стандарте С99 было введено понятие так называемого динамического массива. Динамический массив - массив, при создании которого в качестве размера указывается значение некоторого выражения, в которое входят переменные, объявленные и инициализированные ранее (выражение должно иметь положительный целочисленный результат).
Например:
Int n;
Printf("Введите размер массива: ");
Scanf("%d",&;n);
Double x[n];
При объявлении статических массивов допускается производить инициализацию элементов массива. Синтаксис такого объявления:
Тип_массива имя_массива[размер] = {значение №1, ... значение №N};
Примеры:
Int a[5] = {1,2,3,4,5}, b[5] = {1,2};
Double x[10] = {0.0};
Int c[] = {1,2,3,4,5};
Char d[] = {'a','b','c'};
Int e[5] = {1,2,,4,5}; //Неправильно - ошибка
Объявление константных одномерных массивов (значения их элементов изменить нельзя) начинается с ключевого слова const, за которым следует объявление массива с инициализацией.
Примеры:
Const int array[] = {1,2,3,4,5};
Const double vector[5] = {1.0,2.0,3.0};
Каждый отдельный элемент массива может рассматриваться как простая переменная и, соответственно, выступать в выражениях в качестве RValue или LValue значений.
Ввод и вывод одномерных массивов в языке СИ осуществляется поэлементно в цикле. Например, ввод и вывод целочисленного массива из десяти элементов будет иметь вид:
Int a[10];
For(int i=0; i<10; i++) scanf("%d", &;a[i]);
For(int i=0; i<10; i++) printf("%d ", a[i]);
Присвоение массива массиву также осуществляется поэлементно. Например, необходимо присвоить одномерный
Вещественный массив x одномерному вещественному массиву y. Фрагмент программы:
Double x[15], y[15];
For(int i=0; i<15; i++) y[i] = x[i];
В СИ во время выполнения программы не производится контроль за допустимыми значениями индексов элементов. Поэтому, если индекс элемента выходит за рамки массива, то в программе возможно появление ошибок. Ошибки могут быть:
Простыми (например "случайное" изменение переменных);
Критическими (выход за пределы пространства памяти, отведенной для программы).
Например:
Int a[10];
For(int i=0; i<=10; i++) a[i] = i;
Ход работы
Техническое задание: вычислить корни уравнения для значений коэффициента В, равных 1,2,3...,N.
Анализ технического задания: Для того, чтобы найти корни данного уравнения, необходимо выразить x.
X1=(-(-B)+pow((-B)^2+2*B,1/2))/2;
X2=(-(-B)-pow((-B)^2+2*B,1/2))/2.
Пусть В=1, затем принимает целые значения до 10.
Блок-схема
Блок-схема алгоритма представлена на рисунке 1.
Рисунок 1
Спецификация на программные модуля. Имя модуля Program1.
- 1. Имя вызывающего модуля - нет. 2. Выполняемые функции - вычисление
X1=(-(-B)+pow((-B)^2+2*B,1/2))/2;
X2=(-(-B)-pow((-B)^2+2*B,1/2))/2,
При В=1,2,3,...,10.
- 3. Входные данные x типа float. 4. Выходные данные y типа float. 5. Особенности, ограничения - нет.
Текст программы
#include<conio. h>
#include<stdio. h>
#include<math. h>
main()
{
int B, x1,x2;
clrscr ();
for (B=1;B<=10;B++)
{
x1=(-(-B)+pow((-B)^2+2*B,1/2))/2;
x2=(-(-B)-pow((-B)^2+2*B,1/2))/2;
printf("B=%d x1=%f x2=%f ",B, x1,x2);
}
getch();
return 0;
}
Результаты тестирования: разработанная программа была протестирована в режимах: при вводе чисел, удовлетворяющих условию, программа работает корректно.
Вывод: программа работает корректно при вводе чисел, удовлетворяющих условию, некорректно при вводе символа.
Заключение: в результате выполнения лабораторной работы научились использовать операторы циклов.
Похожие статьи
-
Изучить операторы цикла в ТР. - Циклические алгоритмы
Циклы организуются, чтобы выполнить некоторый оператор или группу операторов определенное число раз. В языке Си три оператора цикла: for, while и do -...
-
Модуль - Самостоятельно компилируемый файл ТР, который может содержать описание констант, переменных и типов, процедур и функций. Он имеет имя и хранится...
-
Reset(имя файловой переменной); При этом указатель устанавливается на начало файла и вся информация сохраняется. Чтение из файла выполняется процедурой:...
-
Протокол проверки программы - Программирование алгоритмов линейных и циклических структур
1. Введем размерность массива N = 6 2. Заполним элементы массива X(i) следующими значениями: 12, 1.34, 8, 10, 17.5, 30 3. Получим следующие результаты:...
-
Понятие о массивах В ранжированных переменных невозможно использование их отдельных значений. При необходимости иметь доступ к каждому значению...
-
Описание переменных, Способы ввода/вывода информации - Система поиска автобусных маршрутов
В программе описана и используется одна глобальная переменная Town: TTown. Данная переменная содержит список остановок и автобусных маршрутов. Остальные...
-
Вывод шаблонов матриц и векторов - Массивы, векторы и матрицы
Команда Matrices... (Матрицы) меню Insert (Вставка) обеспечивает задание векторов или матриц. Как известно, матрица является именованным объектом в виде...
-
При разработке данной программы были допущены следующие синтаксические ошибки: - неправильное использование операторов присваивания; - неверное...
-
На рисунке 1 представлен фрагмент электронной таблицы, в которой содержаться исходные данные для решения задачи. Рисунок 1 - Фрагмент электронной...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Выводы по результатам тестирования - Исследование алгоритмов
По полученным в ходе анализа данным сделать вывод о качестве обученных каскадных классификаторов и о причинах таких результатов, а также выяснить, какие...
-
Как представлять непрерывную информацию?, Выводы - Информация и способы ее получения
Для представления непрерывной величины могут использоваться самые разнообразные физические процессы. В рассмотренном выше примере весы позволяют величину...
-
ОПЕРАТОР ВВОДА ДЛЯ ЧТЕНИЯ ФАЙЛА, ОПЕРАТОР ВЫВОДА - Язык программирования Паскаль
Оператор ввода для чтения файла обладает всеми свойствамии обычного оператора READ. Вкачестве параметров могут быть переменные; каждая переменная поучает...
-
Формулировка задания: Составьте программу подсчета числа тех гласных букв в слове X, что не используются в написании слова Z. Описание входных/выходных и...
-
Методы изображение алгоритмов - Алгоритм
На практике наиболее распространены следующие формы представления алгоритмов: 12. словесная (записи на естественном языке); 13. графическая (изображения...
-
Цель Работы - научиться использовать операции динамического выделения и освобождения памяти на примере работы с одномерными и двумерными массивами, а...
-
Процедуры и переменные Таблица с описание процедур: Вызов Название процедуры Предназначение Кнопка "Записать уравнение" TForm1.Button1Click Составление и...
-
Значения свойств объектов можно менять двумя способами: При проектировании : В каждый момент проектирования только один объект является выделенным...
-
Выведем в общем виде уравнение движения заданной динамической модели при помощи уравнений Лагранжа II рода. Полная кинетическая энергия: , Полная...
-
После ввода пользователем исходных данных компьютер должен их обработать в соответствии с заданной программой и вывести результаты в форме, удобной для...
-
Каскадные таблицы стилей CSS - Компьютерная лингвистика в образовательной среде
Язык CSS отвечает за стиль в том или ином документе. Он используется для того, чтобы придать страницам на HTML -- фундаментальном языке WWW --...
-
Табличный процессор Excel фирмы Microsoft предназначен для ввода, хранения, обработки и выдачи больших объемов, данных в виде, удобном для анализа и...
-
Подпрограммы - Язык программирования PERL. Сфера применения
Как и все структурированные языки программирования, Perl поддерживает подпрограммы. Подпрограмма может быть определена с помощью ключевого слова sub, как...
-
Кодированием называется представление символов одного алфавита средствами другого алфавита. Алфавит содержащий два символа называется двоичным (часто их...
-
Основная программа Построение интерполяционного многочлена Нахождение максимума функции методом дихотомии Вычисление значения заданной функции Создание и...
-
Графический способ описания алгоритмов
Графический способ описания алгоритмов Цель практической работы Цель работы: изучение графического способа описания алгоритма для решения задачи. Задачи...
-
ТИПИЗИРОВАННЫЕ КОНСТАНТЫ - Типы данных в программе Турбо Паскаль
В Турбо Паскале допускается использование типизированных констант. Они задаются в разделе объявления констант следующим образом: <индификатор> :...
-
Сжатие данных можно разделить на два основных типа: 1) Сжатие без потерь или полностью обратимое; 2) Сжатие с потерями, когда несущественная часть данных...
-
Понятие "массив" носит фундаментальный характер. Самым удобным способом хранения большого количества однотипных данных является массив. Обработка...
-
На вкладке Лист диалогового окна Параметры страницы можно задавать различные параметры печати, например печатаемый диапазон ячеек, заголовки строк и...
-
ОПИСАНИЕ ПРОГРАММЫ, ОСНОВНЫЕ ПЕРЕМЕННЫЕ И СТРУКТУРЫ - Структуры и алгоритмы обработки данных
ОСНОВНЫЕ ПЕРЕМЕННЫЕ И СТРУКТУРЫ Struct BD { char FIO[32]; // фоpмат <Фамилия>_<Имя>_<Отчество> int numberO; char dolzhnost[32]; char dateB[8]; }...
-
Способы связывания с документом - Компьютерные сети
Внешние таблицы стилей - в отдельном css-файле. Связывается с HTML-документом командой <link rel="stylesheet" href="/templates/template. css"...
-
ДВОИЧНЫЙ ПОИСК, АВЛ-Дерево - Структуры и алгоритмы обработки данных
Алгоритм двоичного поиска в упорядоченном массиве сводится к следующему. Берем средний элемент отсортированного массива и сравниваем с ключом X. Возможны...
-
Обобщенный алгоритм решения задачи Необходимо рассчитать сумму налога на дарение, воспользовавшись налоговой шкалой. Если сумма подарка менее 80, то она...
-
Вычислить максимум функции F(x)=-L(x1)x2+3.1L(x2)x+5 на отрезке [a;b] с точностью е. L(x1), L(x2) - значения интерполяционного многочлена, построенного...
-
ДД-код Константа16 ДД-код Константа16 1111 1111 FF 0000 0000 00 0011 0101 35 1111 0100 F4 0101 0111 57 1001 1010 9A 1000 1101 8D 0000 0111 07 1000 0000...
-
Свойства алгоритмов - Алгоритм
Данное выше определение алгоритма нельзя считать строгим - не вполне ясно, что такое "точное предписание" или "последовательность действий,...
-
Программные модули проекта, Представление графа в памяти ЭВМ - Алгоритмы нескольких махов
Все программы были реализованы на языке С++ на персональной ЭВМ с операционной системой Windows. Каждая программа представляет собой консольное...
-
Алгоритм создания открытого и секретного ключей - Алгоритм кодировки RSA
RSA-ключи генерируются следующим образом: 1. Выбираются два различных случайных простых числа и заданного размера (например, 1024 бита каждое). 2....
-
Компонент вывода - Экспертные системы
Его действия основаны на применении правила вывода, обычно называемого модус поненс, суть которого состоит в следующем: пусть известно, что истинно...
Изучить способы вывода на экран таблицы значений. - Циклические алгоритмы