DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт про виконання лабораторної роботи № 5 з курсу „Засоби системного програмування“

Оригінальна назва роботи

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

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

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

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

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

Про що ця робота

Звіт присвячено виконанню лабораторної роботи з обробки символьних рядків мовою Сі. У ході роботи реалізовано програму для заміни буквосполучень із передачею параметрів через аргументи функції main.

У роботі розглядаються

  • Системне програмування
  • Мова програмування Сі
  • Обробка символьних рядків
  • Динамічний розподіл пам'яті
  • Аргументи функції main
  • Стандартні бібліотеки Сі

Зміст і розділи

  1. Мета роботи
  2. Завдання на лабораторну роботу
  3. Аналіз завдання та опис алгоритму вирішення задачі
  4. Текст програми
  5. Опис результатів тестування
  6. Висновок
Для кого:Студенти та викладачі технічних спеціальностей вищих навчальних закладів.
Викладачі:Не вказано

Ключові поняття

символьні рядкифункція mainаргументи командного рядкадинамічна пам'ятьmallocstring.hargc та argvбуквосполученнятестування програмизаголовковий файл

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 5 з курсу „ Засоби системного програмування ” Тема: Передача параметрів програмі через аргументи функції main(). Львів – 2004 Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками опрацювання символьних рядків. Засвоїти методику роботи з символьними рядками за допомогою стандартних функцій бібліотеки Сі. Завдання на лабораторну роботу Розробити програмне забезпечення для опрацювання символьних рядків відповідно до заданого варіанту. Під словом, слід розуміти послідовність алфавітних символів, що належать множині {’А’, ’Б’, …, ’Я’, ’а’, ’б’, …, ’я’, ’A’, ’B’, …, ’Z’, ’a’, ’b’, …, ’z’}. Речення, це послідовність слів розділених пропуском (пробілом). Кожне слово чи речення повинно представлятися в пам’яті машини окремою символьною змінною. При реалізації програм, максимально використати стандартні (бібліотечні) функції обробки символьних рядків. Ці функції описані в заголовковому файлі string.h, а їх імена починаються з префіксу “str…”. Програма повинна обробляти слова та речення довільної довжини. Для цього використати механізм динамічного розподілу пам’яті. При реалізації механізму динамічного розподілу пам’яті використати стандартні Сі – функції malloc(), calloc() realloc() та free(). При вирішенні задач забезпечити дружній інтерфейс з користувачем. Варіант 23. Ввести зі стандартного пристрою вводу речення. Замінити в словах буквосполучення ’x…z’ буквосполученням ’s…q’, де ’s’, …, ’z’ – довільні алфавітні символи, а довжини буквосполучень різні, та вивести їх (слова) на стандартний пристрій виводу. Буквосполучення ’x…z’ та ’s…q’ передавати програмі через аргументи функції main(). Аналіз завдання та опис алгоритму вирішення задачі Використовуючи функції порівняння рядків символів шукаємо перше потрібне буквосполучення в реченні, замінюємо його новим, а потім визначаємо початок і кінець слова, в якому знайдене шукане буквосполучення і виводимо змінене слово. Аналогічні дії повторюємо для всіх слів з шуканим буквосполученням. Буквосполучення передємо програмі через аргументи функції main() – int argc (кількіть аргументів) і char *argv[] – власне самі аргументи, в даній програмі – буквосполучення. Текст програми #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> int main( int argc, char *argv[] ) { int i, j, k, left, right=0, words=0; char *sent, *str, *newstr, *temp; clrscr(); if (argc!=3) { printf("Wrong number of arguments!\n"); printf("You should input two letter sequences.\n"); printf("\n <press Enter to exit> "); getchar(); exit(1); } if ((sent=(char*) malloc(200*sizeof(char)))==NULL) printf("No memory for sentence has been allocated!"); if ((str=(char*) malloc(20*sizeof(char)))==NULL) printf("No memory for string has been allocated!"); if ((newstr=(char*) malloc(20*sizeof(char)))==NULL) printf("No memory for new string has been allocated!"); if ((temp=(char*) malloc(40*sizeof(char)))==NULL) printf("No memory for temporary string has been allocated!"); printf("Input a sentence (words may contain only A..Z and a..z):\n "); gets(sent); sent=(char *) realloc(sent,strlen(sent)+1); str=argv[1]; newstr=argv[2]; while (sent[right]!='\0') // perebyrayemo po sumvolu v rechenni { temp[0]='\0'; if (strncmp(&sent[right],str,strlen(str))==0)//rech maye taki sumvoly? { left=right; //┌ poshyk while (isalpha(sent[left]) && left!=0) left--; //│ livoji if (left != 0) left++; //└ mezhi slova while (isalpha(sent[right++])); //┌ poshuk pravoj i right--; //└ mezhi slova printf("\n%d> Word with \"%s\": ",words+1,str); for (i=left;i<=right;i++) putchar(sent[i]); // vyvid slova j=left; k=0; while (strncmp(&sent[j],str,strlen(str))!=0) { temp[k]=sent[j]; k++; j++; } temp[k]='\0'; strcat(temp,newstr); k=k+strlen(newstr); j=j+strlen(str); while (j<=right) { temp[k]=sent[j]; k++; j++; } k--; temp[k]='\0'; printf("\n new word: %s\n",temp); words++; // zbil'shyty kilkist' sliv na 1 } right++; // perehid na nastupnyj symvol v rechenni } if (words==0) printf("No words with \"%s\" were found!",str); free(sent); free(str); free(newstr); free(temp); printf("\n <press Enter to exit> "); getchar(); return 0; } Опис результатів тестування Для тестування програми було використано речення: “There were three squirrels on the tree.”. Треба було замінити буквосполучення “er” на “?..?”. Для запуска програми в командний рядок потрібно ввести ім’я програми з необхідними аргументами: Lab5.exe er ?..? Кінцевий вигляд результатів тестування програми: Input a sentence (words may contain only A..Z and a..z): There were three squirrels on the tree. 1> Word with "er": There new word: Th?..?e 2> Word with "er": were new word: w?..?e <press Enter to exit> Висновок: Виконуючи дану лабораторну роботу, я закріпив теоретичні знання та оволодів практичними навиками опрацювання символьних рядків. Засвоїв методику роботи з символьними рядками за допомогою стандартних функцій бібліотеки Сі, використовував передачу параметрів програмі через аргументи функції main(), при вводі невірної кількості параметрів програма повідомляє про помилку та припиняє свою роботу.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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