Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Лабораторная работа: Управляющие структуры языка "Си". Программирование с использованием указателей

Название: Управляющие структуры языка "Си". Программирование с использованием указателей
Раздел: Рефераты по информатике, программированию
Тип: лабораторная работа Добавлен 18:05:20 04 августа 2010 Похожие работы
Просмотров: 117 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Херсонский национальный технический университет

Лабораторная работа №1, 2

по дисциплине

«Программирование»

Выполнила

студентка группы 1зКСС

Малахова Т.Н.

Проверил

Дроздова Е.А.

Херсон 2005


Лабораторная работа №1

Управляющие структуры языка «Си»

Цель работы : Изучение приемов использования операторов ветвления и операторов циклов в С.

Теоретические сведения:

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

Блоки и составные операторы.

Любая последовательность операторов, заключенная в фигурные скобки, является составным оператором (блоком). Составной оператор не должен заканчиваться (;), поскольку ограничителем блока служит сама закрывающаяся скобка. Внутри блока каждый оператор должен ограничиваться (;).

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

Пустой оператор.

Пустой оператор представляется символом (;), перед которым нет выражения. Пустой оператор используют там, где синтаксис языка требует присутствия в данном месте программы оператора, однако по логике программы оператор должен отсутствовать.

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

Операторы ветвления.

К операторам ветвления относятся if, if e l se, ?, switch и goto . Общий вид операторов ветвления следующий:

if (логическое выражение)

оператор;

if (логическое выражение)

оператор_1;

else

оператор_2;

<логическое выражение> ? <выражение_1> : <выражение_2>;

Если значение логического выражения истинно, то вычисляется выражение_1, в противном случае вычисляется выражение_2.

switch (выражение целого типа)

{

case значение_1:

последовательность_операторов_1;

break;

case значение_2:

последовательность_операторов_2;

break ;

. . .

case значение_ n :

последовательность_операторов_n;

break;

default:

последовательность_операторов_n+1;

}

Ветку default можно не описывать. Она выполняется, если ни одно из вышестоящих выражений не удовлетворено.

Оператор цикла.

В Турбо Си имеются следующие конструкции, позволяющие программировать циклы: while, do while и for . Их структуру можно описать следующим образом:

Цикл с проверкой условия наверху:

while ( логическое выражение)

оператор;

Цикл с проверкой условия внизу:

do

оператор;

while (логическое выражение);

Универсальный оператор цикла:

for (инициализация; проверка; новое_значение)

оператор;

Задание:

Составить и получить распечатку программы выбора всех четных чисел от 1 до 1000.

Составить и получить распечатку программы выбора всех чисел, заканчивающихся на цифру 5, от 1 до 1000.

Написать программу с использованием цикла do-while , которая ожидает нажатия клавиши ‘ъ’ и по нажатии её завершает работу.

Программа 1: распечатывает все четные числа от 1 до 1000:


#include <stdio.h>

int vit;

int main( void )

{

vit = 2;

while (vit <= 1000)

{

vit = vit +2;

printf("%d\n", vit);

}

system("PAUSE");

return 0;

}

Программа 2: распечатывает все числа от 1 до 1000, которые заканчиваются на цифру 5:

#include <iostream.h>

#include <stdlib.h>

int den;

int main()

{

den = 5;

while (den <= 1000)

{

den = den +10;

printf("%d\n", den);

}

system("PAUSE");

return 0;

}

Программа 3: Программа ожидает нажатия клавиши «Ъ» и по её нажатии завершает работу:

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

//#include <bios.h>

int getkey;(void);

{

int key, lo, hi;

key=bioskey(0);

lo = key & 0X00FF;

hi = (key & 0X0FF00) >> 8;

return((lo==0) ? hi +256: lo);

}

main()

{

clrscr();

int input;

do

{

input = getkey();

printf("Program is running \n");

}

while (input!= ']');

}


Лабораторная работа N2

Программирование с использованием указателей

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

Теоретические сведения

Указатель - это переменная, которая содержит в памяти адрес данных. Переменная-указатель содержит местоположение значения. То есть, переменная-указатель указывает на значение, так как она содержит его адрес.

Указатели предоставляют эффективные средства доступа и изменения данных. Так как указатели содержат адреса данных, то при поиске значений в памяти у компьютера сокращается объем работы. Указатели не привязывают данные к какому-либо определенному имени переменной. Они могут содержать адрес любого не именованного значения.

Суть переменных-указателей.

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

Единственная разница между обычными переменными и указателями заключается в их содержимом. Указатели содержат не само значение, а его адрес.

В Си имеет два оператора, относящихся к указателям:

& - оператор "адрес значения"

* - оператор "значение по адресу"

Объявление указателей.

Если нужно объявить переменную для хранения, например, возраста то можно сделать это следующим образом:

int age = 20;

Такое объявление переменной age подразумевает несколько моментов. Во-первых, сообщается Си, что нужна переменная с именем age , и Си резервирует для этой переменной место в памяти. Во-вторых, Си узнает, что age будет использоваться для хранения только целых чисел. В-третьих, при объявлении эта переменная инициализируется значением 20.

Пусть нужно объявить переменную-указатель, которая не содержит возраст, а указывает на age , переменную, где находятся нужные данные. Для объявления указателя на переменную age нужно сделать следующее:

int * p _ age ;

В этой строке резервируется место для переменной с именем p_age . Однако это не обычная целочисленная переменная. Так как перед ней стоит *, Си определит, что это переменная-указатель.

Присваивание значений указателям.

Указатель может содержать адреса значений только соответствующего ему типа. Например, p_age может указывать только на целочисленные переменные. Си не инициализирует указатели при их объявлении. Если age объявлена как показано выше, и нужно, чтобы p_age содержала адрес age , нужно присвоить его переменной p_age :

p _ age =& age ;

Вместо занесения адреса переменной age в переменную p_age при помощи оператора присваивания можно одновременно объявлять и инициализировать указатели.

int age=20;

int *p_age=&age;

Можно присваивать различные значения переменной age следующим оператором:

age=35;

Либо можно сделать то же самое другим путем:

*p_age=35;

Эта строка подразумевает "взять ячейку памяти, на которую указывает p_age и занести туда значение 35".

Объявление массивов указателей.

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

int *iptr[10];

Можно присвоить адрес любому элементу из iptr таким же образом, как и любому другому указателю, не входящему в массив:


iptr[4]=&age;

В следующей строке резервируется массив из 20 указателей на переменные символьного типа:

char * cpoint [20];

Задание:

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

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

#include<stdio.h>

#include<conio.h>

#include<alloc.h>

int* arr;

void zero();

void in();

int max();

void out();

void main()

{

arr=(int*)malloc(10);

clrscr();

zero();

out();

getch();

in();

int maxEl=max();

int i;

for(i=0;i<10;i++)

if(*(arr+i)==maxEl) *(arr+i)=0;

else ;

clrscr();

out();

getch();

}

void zero()

{

int i;

for(i=0;i<10;i++)

*(arr+i)=0;

}

void in()

{

printf("\nEnter elements of array:");

printf("\n");

int i;

for(i=0;i<10;i++)

scanf("\n%i",arr+i);

}

int max()

{

int mx=*arr;

int i=1;

for(i;i<10;i++)

if(mx<*(arr+i)) mx=*(arr+i);

else ;

return mx;

}

void out()

{

int i;

for(i=0;i<10;i++)

{

printf("%i",*(arr+i));

printf(" ");

}

system("PAUSE");

return 0;

}

Результат работы программы: Массив первоначально заполняется нулями, затем данные вводятся с клавиатуры. Заменяются нулем все элементы, равные максимальному. Массив задаётся при помощи указателя. Память под массив зарезервирована при помощи функций динамического распределения памяти.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений06:44:49 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
19:50:55 28 ноября 2015

Работы, похожие на Лабораторная работа: Управляющие структуры языка "Си". Программирование с использованием указателей

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(150886)
Комментарии (1841)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru