main( ) и getarray( )

main( ) и getarray( )

     Вызовем нашу функцию getarray( ), предназначенную для считывания. Мы определили эту функцию в терминах ввода и вывода и наметили в общих чертах схему на псевдокоде. Теперь давайте напишем функцию и покажем, как она включается в основную программу:

Сначала напишем main( ):

/* сортировка 1 */

#define MAXSIZE 100 /* предельное количество сортируемых целых чисел */

main( )

{

int numbers [MAXSIZE]; /* массив для ввода */

int size; /* количество вводимых чисел */

size = getarray(numbers, MAXSIZE); /* запись чисел в массив */

sort(numbers, size); /* сортировка массива */

print(numbers,/size); /* печать отсортированного массива */

}

Это общий вид программы. Функция getarray() размещает введенное числа в массиве numbers и выдает сообщение о том, сколько значений было считано; эта величина записывается в size. Затем идя функции sоrt( ) и print( ), которые мы еще должны написать; они сортируют массив и печатают результаты. Включая в них size, мы облегчаем им работу и избавляем от необходимости выполнять самим подсчет. Мы также снабдили getarray( ) переменной MAXSIZE, которая сообщает размер массива, необходимого для запоминания.

     Теперь, когда мы добавили size к передаваемой информации, нужно модифицировать рисунок нашего черного ящика. См. рис. 10.6.

 

                                                         РИС. 10.6. Программ: сортировки, дополнительные детали.

Теперь рассмотрим функцию getarray( ):

/* getarray( ), использующая getint( ) */

#define STOP  -1 /* признак EOF */

#define NONUM 1 /* признак нецифровой строки */

#define YESNUM 0 /* признак строки цифр */

getarray(array, limit);

int array[ ], limit;

{

int num, status;

int index = 0; /* индекс массива */

printf(" Эта программа прекращает считывание чисел после %d значений. ", limit);

printf(" или если введен символ EOF. ");

while(index < limit && (status = getint(&num)) != STOP)

{  /* прекращает считывание после достижения limit или EOF */

if(status == YESNUM)

{ array[index++] = num;

printf(" число %d принято. ", num);

} else if(status == NONUM)

printf(" Это было не целое число! Попытайтесь снова. ");

else

printf(" Этого не может быть! Что-то неправильно. ");

if(index == limit) /* сообщить, если массив заполнен */

printf(" Все %d элементов массива заполнены. ", limit);

return(index);

}

Это значительная часть программы, и у нас есть немало замечаний.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

[service main]

Из книги Документация NetAMS автора Автор неизвестен

[service main] Напоминаем, что явно описывать этот сервис не нужно: подразумевается, что конфигурационный файл начинается с описания этого сервиса.user { oid OID | name user_name }[real–name user_human_name][email email_addr][password pass][crypted crypted_pass][permit permit_state]Команда, которая задает пользователя системы и его


main

Из книги Собираем компьютер своими руками автора Ватаманюк Александр Иванович

main show versionshow config [unsecure] [oids]show connectionsshow usersshow scheduleshow units [ syspolicy [whereset] |email | hash | name XXX |mac [whereset] | unit_type ]show processorshow dsshow alertershow monitorshow list [full] [name XXX | OID YY]show policyshow quota [oid ID | name XXX | list]show loginshow perf filename [header]show healthuser { oid OID | name user_name }[real–name user_human_name][email email_addr][password pass][crypted crypted_pass][permit permit_state]no user {


Main

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Main В данной секции представлены следующие параметры.• System Time. Отображает текущее системное время. Его можно изменить, однако, как правило, пользователи настраивают системное время с помощью средств операционной системы, а не BIOS.• System Date. Показывает системную дату,


Main

Из книги Очень хороший самоучитель пользователя компьютером. Как самому устранить 90% неисправностей в компьютере и увеличить его возможности автора Колисниченко Денис Николаевич

Main Данная секция содержит параметры, отвечающие за определение и настройку устройств хранения данных, системного таймера, безопасность BIOS и т. д.• System Date. Ответственен за системную дату, можно изменить.• System Time. Отвечает за работу системного таймера и представляет


Вариации метода Main()

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Вариации метода Main() Предыдущий вариант Main() был определен с одним параметром (массивом строк) и возвращал данные типа int. Однако это не единственно возможная форма Main(). Для построения точки входа приложения можно использовать любую из следующих сигнатур (в предположении,


Реализация Main()

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Реализация Main() Метод Main() класса Program запрашивает у пользователя абсолютное имя типа. После получения строковых данных они передаются методу Туре.GetType(), а извлеченный объект System.Type отправляется каждому из вспомогательных методов. Это повторяется до тех пор, пока


Меню Main

Из книги Linux программирование в примерах автора Роббинс Арнольд

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


Программа main отсутствует

Из книги C++ для начинающих автора Липпман Стенли

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


Обобщенная функция Main

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Обобщенная функция Main Обозначение С-функции main с ее списком аргументов (argv[]) следует заменить макросом _tmain. В зависимости от определения символической константы _UNICODE макрос разворачивается либо до main, либо до wmain. _tmain определяется в заголовочном файле <tchar.h>, который


Функция main()

Из книги автора

Функция main() Задачей новой функции main(), которая вызывается SCM, является регистрация службы в SCM и запуск диспетчера службы (service control dispatcher). Для этого необходимо вызвать функцию StartServiceControlDispatcher, передав ей имя (имена) и точку (точки) входа одной или нескольких логических


9.1.5.2. Возвращение из main()

Из книги автора

9.1.5.2. Возвращение из main() Программа может естественно завершиться одним из двух способов: посредством использования одной из описанных далее функций или возвратившись из main(). (Третий, более радикальный способ описан далее в разделе 12.4 «Совершение самоубийства: abort()».) В


5.2. Эхо-сервер TCP: функция main

Из книги автора

5.2. Эхо-сервер TCP: функция main Наши клиент и сервер TCP используют функции, показанные на рис. 4.1. Программа параллельного сервера представлена в листинге 5.1[1].Листинг 5.1. Эхо-сервер TCP (улучшенный в листинге 5.9)//tcpcliserv/tcpserv01.с 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5  int listenfd, connfd; 6  pid_t


5.4. Эхо-клиент TCP: функция main

Из книги автора

5.4. Эхо-клиент TCP: функция main В листинге 5.3 показана функция main TCP-клиента.Листинг 5.3. Эхо-клиент TCP//tcpcliserv/tcpcli01.c 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5  int sockfd; 6  struct sockaddr_in servaddr; 7  if (argc != 2) 8   err_quit("usage: tcpcli <Ipaddress>"); 9  sockfd = Socket(AF_INET, SOCK_STREAM, 0);10  bzero(&servaddr. sizeof(servaddr));11  servaddr.sin_family


8.3. Эхо-сервер UDP: функция main

Из книги автора

8.3. Эхо-сервер UDP: функция main Теперь мы переделаем нашу простую модель клиент-сервер из главы 5, используя UDP. Диаграмма вызовов функций в программах наших клиента и сервера UDP показана на рис. 8.1. На рис. 8.2 представлены используемые функции. В листинге 8.1[1] показана функция


8.5. Эхо-клиент UDP: функция main

Из книги автора

8.5. Эхо-клиент UDP: функция main Функция main клиента UDP показана в листинге 8.3.Листинг 8.3. Эхо-клиент UDP//udpcliserv/udpcli01.c 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5  int sockfd; 6  struct sockaddr_in servaddr; 7  if (argc != 2) 8   err_quit("usage: udpcli <Ipaddress>"); 9  bzero(&servaddr, sizeof(servaddr));10  servaddr.sin_family = AF_INET;11  servaddr.sin_port =