Практикум для изучения дисциплины «Основы программирования»



Pdf көрінісі
бет49/81
Дата08.07.2020
өлшемі1,55 Mb.
#74978
түріПрактикум
1   ...   45   46   47   48   49   50   51   52   ...   81
Байланысты:
А.А. Тюгашев

ЗАМЕЧАНИЕ 
Если  изменение  значений  вызывающей  функции  необходимо,  для  этого 
используют  специальный  трюк  с  операцией  &,  описанный  ниже  при 
рассмотрении функции scanf() и указателей языка Си. 
Контрольные вопросы 
1. 
Каковы базовые принципы структурирования программ на языке Си? 
2. 
В чем разница между глобальными и локальными переменными? Стоит 
ли  повсеместно  использовать  глобальные  переменные?  Надо  ли  их 
полностью исключить? Почему? 
3. 
Что такое «область видимости» переменной? 
4. 
В  чем  разница  между  передачей  параметров  в  языках 
программирования  по  ссылке  и  по  значению?  Как  в  программе 
изменить значение переменной вызывающей функции на языке Си? 
5. 
Что означает термин «время жизни» переменной? 
Структуры данных и управления языка 
программирования Си 
Наряду  с  простыми  одинарными  переменными  одного  из  базовых  типов 
язык  Си  позволяет  объявлять  массивы.  Под  массивом  понимается  набор 
(упорядоченное  множество)  элементов  одного  типа.  При  этом  возможен 
доступ  к  элементам  массива  путем  указания  индекса  (то есть  номера 
элемента  в  массиве).  При  этом,  в  отличие  от  многих  языков 
программирования,  в  языке  Си  принято  соглашение  о  том,  что  элементы 


93 
 
массива нумеруются, начиная с нуля, то есть первый элемент — элемент с 
номером 0. Смысл подобной нумерации, несколько странной для читателя, 
не  являющегося  специалистом  в  программировании,  заключается  в  том, 
что  индекс  можно  рассматривать  как  величину  смещения  от  начальной 
ячейки  памяти,  от  которой  в  памяти  помещается  массив.  При  этом  Си 
оказал  огромное  влияние  на  другие  языки —  даже  современные  языки 
Паскаль-семейства. 
Объявляются массивы там же, где и обычные переменные, то есть в начале 
функции, но в квадратных скобках после имени указывается размерность 
(количество элементов), например: 
int a,b,c; 
float x[20]; 
char c,str[40]; 
Здесь  описаны  массив  вещественных  чисел  из  20  элементов,  а  также 
массив символов (строка) размерностью 40. Обратите внимание на то, что 
в  языке  Си  строки  представляют  собой  массивы  символов,  при  этом  на 
конец строки указывает символ с кодом (значением), равным нулю. 
При  работе  с  массивами  часто  используют  цикл  по  его  элементам,  при 
этом  значение  переменной,  используемой  в  качестве  индекса,  либо 
увеличивается,  либо  уменьшается  на  единицу.  Поскольку  нумерация 
элементов  начинается  с  нуля,  переменная-индекс  имеет  значение  от  0 до 
N – 
1,  где  N —  количество  элементов  массива.  Связано  это  с  тем,  что 
фактически  индекс  элемента  в  массиве  на  Си  представляет  собой 
смещение  относительно  значения  указателя  в  памяти  на  первый  элемент 
массива.  
Массивы  могут  фигурировать  в  качестве  формальных  и  фактических 
параметров функций. Пример: 
/* обработка массива в Си */ 
#include  
#include  
 
int Pecat_kornei(float args[],int kol) 

int i; 
float res; 
for (i=0;i
    if (args[i]>0) 
    { 
      res=sqrt(args[i]); 
      printf
("Корень из %d — го элемента равен %f\n",i,res); 


94 
 
    } 
    else 
      
printf("Элемент массива номер %d меньше нуля !",i);  


Используется  стандартная  библиотека  математических  функций, 
описанных в заголовочном файле math.h. Функция sqrt() возвращает 
значение квадратного корня числа. 
В 
приведенной 
программе 
используется 
цикл 
for
 
языка 
программирования  Си,  который  является  весьма  гибким  инструментом. 
После  ключевого  слова  for  в  круглых  скобках,  разделенные  точками  с 
запятой,  идут  три  выражения.  Первое —  группа  операторов  языка, 

Достарыңызбен бөлісу:
1   ...   45   46   47   48   49   50   51   52   ...   81




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет