Передача параметрів програмі через аргументи функції main( )

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування
Група:
КI

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ національний університет “Львівська політехніКА” КАФЕДРА ЕЛЕКТРОННИХ ОБЧИСЛЮВАЛЬНИХ МАШИН Лабораторна робота №5 Передача параметрів програмі через аргументи функції main( ) Виконав: ст. гр. КІ-2 Львів-2004 Мета роботи: закріпити теоретичні знання та оволодіти практичними навиками опрацювання символьних рядків. Засвоїти методику роботи з символьними рядками за допомогою стандартних функцій бібліотеки Сі. Завдання на лабораторну роботу: Розробити програмне забезпечення для опрацювання символьних рядків відповідно до заданого варіанту. Під словом, слід розуміти послідовність алфавітних символів, що належать множині {’А’, ’Б’, …, ’Я’, ’а’, ’б’, …, ’я’, ’A’, ’B’, …, ’Z’, ’a’, ’b’, …, ’z’}. Речення, це послідовність слів розділених пропуском (пробілом). Кожне слово чи речення повинно представлятися в пам’яті машини окремою символьною змінною. При реалізації програм, максимально використати стандартні (бібліотечні) функції обробки символьних рядків. Ці функції описані в заголовковому файлі string.h, а їх імена починаються з префіксу “str…”. Програма повинна обробляти слова та речення довільної довжини. Для цього використати механізм динамічного розподілу пам’яті. При реалізації механізму динамічного розподілу пам’яті використати стандартні Сі – функції malloc(), calloc() realloc() та free(). При вирішенні задач забезпечити дружній інтерфейс з користувачем. Варіант 1. Ввести зі стандартного пристрою вводу речення. Виділити в реченні окремі слова та вивести їх на стандартний пристрій виводу. Виділені слова взяти в дужки. Довжину речення, в символах, передавати програмі через аргументи функції main(). Виконання роботи: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { clrscr(); char *str, *ns; if (argc!=2) { printf("No lenth of string detected\n"); exit(1); } str=(char*) malloc (atoi(argv[1])*sizeof(char)); puts ("\nInput string:\n"); gets (str); if (atoi(argv[1]) < strlen(str)) puts ("\nNo enough memory\n"); else { printf("\nFound words:\n\n"); ns=strtok(str," "); while(ns) { { printf("("); printf("%s",ns); printf(")\n"); } ns=strtok(NULL, " " ); } getchar(); return 0; void free (char *str); } } Аналіз результату виконання програми: тестуюча програма буде мати наступний вигляд: Input string Вирішення задач засобами мови Сі Found words: (Вирішення) (задач) (засобами) (мови) (Сі) Якщо розмір введеного рядка більший ніж розмір виділеної памяті, то програма видає повідомлення про помилку. В цій програмі були використані стандартні функції для роботи з рядками символів (файл string.h), а також для динамічного розподілу пам’яті (файл stdlib.h): char *strtok (char *str1, const char *str2) – повертає вказівник на наступну лексему в стрічці, що адресується параметром str1. void *malloc (size_t size) – повертає вказівник на перший байт області памяті розміром size, яка була виділена із динамічно розподіляємої памяті. void free (void *ptr) – повертає в пам'ять блок, який стає доступним для подальшого виділення. int atoi (const char *str) – перетворює рядок в значення типу int. Цей рядок має містити допустиме ціле число. Висновки: при виконанні лабораторної роботи №5 я ознайомився з основними функціями опрацювання рядків та робот з динамічною памяттю та з функцією main (). Мною була розроблена програма, яка демонструє роботу цих функцій.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!