рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Int substr (src, dest, num, len);

Int substr (src, dest, num, len); - раздел Образование, МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ КУРСОВИХ РОБІТ З ДИСЦИПЛІНИ « ПРОГРАМУВАННЯ» Де · Src — Рядок, З Якого Вибираються Символи; ...

де

· src — рядок, з якого вибираються символи;

· dest — рядок, у який записуються символи;

· num — номер першого символу в рядку src, з якого починається підрядок (нумерація символів ведеться з 0);

· len —довжина вихідного рядку.

Встановимо такі можливі значення, що буде повертати функція: 1 (завдання параметрів правильне) і 0 (завдання неправильне). Ці значення при звертаннях до функції можна буде інтерпретувати як «істина» або «неправда» ("вірно" або "невірно").

Позначимо через Lsrc довжину рядку src. Тоді можливі такі варіанти при завданні параметрів:

· num+len <= Lsrc — повністю правильне завдання ( випадок 1 );

· num+len > Lsrc; num < Lsrc — правильне завдання, але довжина вихідного рядку буде менша, ніж len (випадок 2 );

· num >= Lsrc — неправильне завдання, вихідний рядок буде порожнім ( випадок 3 );

· num < 0 або len <= 0 — неправильне завдання, вихідний рядок буде порожнім ( випадок 4 ).

 

Функція повинна точно інтерпретувати задані параметри як правильні/неправильні та здійснювати вибір реакції на неправильне завдання параметрів. Можливий також випадок, коли вихідний рядок вийде більшої довжини, чим для нього відведено місця в пам'яті. Однак, оскільки функції невідомий розмір пам'яті, відведений для рядку dest, функція не може розпізнати і обробити цей випадок - так само поводяться і бібліотечні функції мови C [9].

 

З.1.3 Опис логічної структури

Програма складається з одного програмного модуля — файл LAB1.C. До складу модуля входять три функції — main, substr_mas і substr_ptr. Загальних змінних у програмі немає. Макроконстантою N визначена максимальна довжина рядку — 80.

Опис алгоритму функції main()

Функція main є головною функцією програми, вона призначена для введення початкових даних, виклику інших функцій і виводу результатів. У функції визначені такі змінні:

· ss і dd — вхідний і вихідний рядки відповідно;

· n — номер символу, з якого повинен починатися вихідний рядок;

· l - довжина вихідного рядка.

 

Функція запитує і вводить значення вхідного рядку ss, номери символу n та довжини l. Далі функція викликає функцію substr_mas, передаючи їй як параметри уведені значення. Якщо функція substr_mas повертає 1, виводяться на екран вхідний і вихідний рядки, якщо 0 — виводяться повідомлення про помилку і вхідний рядок. Потім вихідний рядок робиться порожнім і те ж саме виконується для функції substr_ptr. Блок-схема алгоритму функції main наведена у додатку К.

 


Опис алгоритму функції substr_mas()

 

Функція substr_mas виконує поставлене завдання методом масивів. Її параметри: — src і dest — вхідний і вихідний рядки відповідно, представлені у вигляді масивів ss[N]та dd[N], які функція отримує з головної програми. Внутрішні змінні i та j використовуються як індекси в масивах.

Функція перевіряє значення параметрів у відповідності з випадком 4, якщо умови цього випадку виявлені, у перший елемент масиву dest записується ознака кінця рядку і функція повертає 0.

Якщо випадок 4 не виявлений, функція переглядає num перших символів вхідного рядку. Якщо при цьому буде знайдена ознака кінця рядку, це - випадок 3, при цьому в перший елемент масиву dest записується ознака кінця рядку й функція повертає 0.

Якщо ознака кінця в перших num символах не знайдена, виконується цикл, у якому індекс вхідного масиву починає мінятися від 1, а індекс вихідного - від 0. У кожній ітерації цього циклу один елемент вхідного масиву пересилається у вихідний. Якщо пересланий елемент є ознакою кінця рядку (випадок 2), то функція негайно закінчується, повертаючи 1. Якщо в циклі не зустрінеться кінець рядку, цикл завершиться після len ітерацій. У цьому випадку в кінець вихідного рядкаузаписується ознака кінця і функція повертає 1. Схема алгоритму функції substr_mas наведена у додатку К.

 

Опис алгоритму функції substr_ ptr ()

Функція substr_ptr виконує поставлене завдання методом вказівників. Її параметри: — src і dest — вхідний і вихідний рядки відповідно, представлені у вигляді вказівників на початки цих рядків.

Функція перевіряє значення параметрів у відповідності з випадком 4, якщо умови цього випадку виявлені, за адресою, що задає dest, записується ознака кінця рядку і функція повертає 0, ці дії виконуються одним оператором.

Якщо випадок 4 не виявлений, функція пропускає num перших символів вхідного рядка. Це зроблено циклом while, умовою виходу з якого є зменшення лічильника num до 0 або поява ознаки кінця вхідного рядка. Важливо чітко представляти порядок операцій, які виконуються в цьому циклі:

o вибирається лічильник num;

o лічильник num зменшується на 1;

o якщо обране значення лічильника було 0 - цикл завершується;

o якщо обране значення було не 0 — вибирається символ, на який указує вказівник src;

o вказівник src збільшується на 1;

o якщо обране значення символу було 0, тобто ознака кінця рядка, цикл завершується, інакше - повторюється.

 

Після виходу із циклу перевіряється значення *src:: якщо воно не 0, це означає, що вихід із циклу відбувся за ознакою нульового значення лічильника num (випадок 3), і за адресою, що задає dest, записується ознака кінця рядку, функція повертає 0.

Якщо ознака кінця не знайдена, виконується цикл, подібний до першого циклу while, але за значенням лічильника len. У кожній ітерації цього циклу символ, на який вказує src переписується за адресою, що задається dest, після чого обидва вказівники збільшуються на 1. Цикл закінчиться, коли буде переписано len символів або зустрінеться ознака кінця рядку. У будь-якому варіанті завершення циклу по поточній адресі, що міститься у вказівнику dest, записується ознака кінця рядку і функція завершується, повертаючи 1.

Лістингифункційsubstr_masтаsubstr_ptrнаведені у додатку Л.

 

З.1.4 Дані для тестування

 

Тестування повинне забезпечити перевірку працездатності функцій для всіх варіантів вхідних даних. Вхідні дані, на яких проводилось тестування, зведені в таблицю З.1

 

Таблиця З.1 - Початкові дані для тестування функцій substr_masтаsubstr_ptr

Варіант src num len dest
           
           
          Пусто  
      -1   -1   пусто пусто пусто  

 

Результати тестування програми у тому вигляді, в якому вони представлені на екрані після виконання програми наведені на рис. З.1 та З.2

 

a) Num=2 len=2 (випадок 1)

 

б) Num=2 len=6 (випадок 2)

 

Рис. З.1 Результати тестування програми з коректними значеннями початкових даних: а – випадок 1 (num=2, len=2); б – випадок 2 (num=2, len=6)

a) Num=8 len=2 (випадок 3)

б) Num=5 len=-1 (випадок 4)

 

Рис. З.2 Результати тестування програми з некоректними значеннями початкових даних: а – випадок 3 (num=8, len=2); б – випадок 4 (num=5, len=-1)

 

Аналіз результатів проведеного тестування дозволяє зробити висновок, що програма коректно працює при всіх варіантах завдання початкових даних. Обмеження на роботу програми: вхідний та вихідний рядки не повинні перевищувати 80 символів.


Додаток К

Блок-схеми алгоритмів

 
 


Рис. К.1 - Блок-схема алгоритму функції main()



Рис. К.2 - Блок-схема алгоритму виділення підрядка з використанням методу індексованих масивів


Додаток Л

 

Лістинг Л.1- Лістинг алгоритму розв’язання задачі з обробки символьних рядків

 

/********************************************************/

/* Файл LAB1.C */

 

/********************************************************/

#include <stdio.h>

#include <clocale>

#include <conio.h>

#define N 80

int substr_mas(char src[N],char dest[N],int num,int len);

int substr_ptr(char *src, char *dest, int num, int len);

 

/* Головна функція програми */

 

void main()

{

char ss[N], dd[N];

int n, l;

setlocale(LC_ALL,"Russian");

printf("Введiть рядок:\n");

gets(ss);

printf("початок=");

scanf("%d",&n);

printf("довжина=");

scanf("%d",&l);

printf("Масиви:\n");

if (substr_mas(ss,dd,n,l))

printf("%s\n%s\n",ss,dd);

else

printf("Помилка! %s\n",dd);

dd[0]='\0';

printf("Адресна арифметика:\n");

if (substr_ptr(ss,dd,n,l))

printf("%s\n%s\n",ss,dd);

else

printf("Помилка! %s\n",dd);

getch();

}

/********************************************************/

/* Функція виділення підрядка (масиви) */

 

/********************************************************/

int substr_mas(char src[N],char dest[N],int num,int len)

{

int i,j;

if ((num<0)||(len<=0)) //перевірка випадку 4

{

dest[0]=0;

return 0;

}

for (i=0; i<=num; i++) //вихід на num-ий символ

if (src[i]=='\0') //перевірка випадку 3

{

dest[0]=0;

return 0;

}

for (i--, j=0; j<len; j++, i++) //перезапис символів

{

dest[j]=src[i];

if (dest[j]=='\0') //перевірка випадку 2

return 1;

}

dest[j]='\0'; //запис ознаки кінця у вихідний рядок

return 1;

}

 

/********************************************************/

/* Функція виділення підрядка (адресна арифметика) */

 

/********************************************************/

int substr_ptr(char *src, char *dest, int num, int len)

{

if ((num<0)||(len<=0)) //перевірка випадку 4

return dest[0]=0;

//вихід на num-ий символ або на кінець рядка

while (num-- && *src++)

if (!*src) //перевірка випадку 3

return dest[0]=0;

while (len-- && *src) //перезапис символів

*dest++=*src++;

*dest=0; //запис ознаки кінця у вихідний рядок

return 1;

}

 


 

Список рекомендованої літератури

 

1. Шилдт, Г. Полный справочник по С [Текст] / Г. Шилдт – М. : Издательский дом “Вильямс”, 2002. - 704 с.

2. Методичні вказівки до виконання курсових робіт з навчальних дисциплін програмувального циклу [Текст] / В.П. Бондаренко, Л.Ф. Волик, В.М. Долгов та ін. – Дніпропетровськ: ДДУ, 1999. – 44 с.

3. Стандарт Дніпропетровського національного університету. Методика виконання випускних, курсових та дипломних проектів (робіт). 2001

4. ДСТУ 3008–95. Документація. Звіти у сфері науки і техніки. Структура і правила оформлення [Текст]. — Чинний від 01.01.96. — К.: Держстандарт України, 1995. – 36 с.

5. ДСТУ ГОСТ 7.1: 2006. Бібліографічний запис. Бібліографічний опис. Загальні вимоги та правила складання [Текст]. Чинний від 01.07.2007. — К. : Держспоживстандарт України, 2007. - III, 47 с.

6. Дейтел, Х.М Как программировать на С. [Текст] / Х.М. Дейтел, П.Дж. Дейтел.. – М. : БИНОМ-ПРЕСС, 2009. – 912 с.

7. ГОСТ 19.701–90. Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения [Текст]. — Переизд. Янв., 1990. — М.: Изд-во стандартов, 1989. – 34 с.

8. Керниган, Б. Язык программирования Си. [Текст] / Б.. Керниган, Д. Ритчи – СПб. – Киев: 2006. – 272 с.

9. Шпак, З.Я. Програмування мовою С. [Текст] / З.Я. Шпак - Львів: Оріяна-Нова, 2006. - 412 с.

 


ЗМІСТ

 

ВСТУП 3

1 ПОРЯДОК ВИКОНАННЯ КУРСОВОЇ РОБОТИ 4

2 СТРУКТУРА ТА СКЛАД КУРСОВОЇ РОБОТИ 5

3 ЗАВДАННЯ НА ВИКОНАННЯ КУРСОВОЇ РОБОТИ 6

4 ОФОРМЛЕННЯ ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ 9

4.1 Загальні положення 9

4.2 Вимоги до структурних елементів пояснювальної записки 10

4.2.1 Вступна частина 10

4.2.2 Основна частина 11

4.2.3 Заключна частина 13

4.2.4 Представлення блок-схем алгоритмів та

лістингів програм 14

ДОДАТОК А Зразок оформлення титульної сторінки 18

ДОДАТОК Б Форма реферату курсової роботи 19

ДОДАТОК В Форма RESUME 20

ДОДАТОК Д Умовні графічні позначення символів в схемах алгоритмів та програм 21

ДОДАТОК Ж Зразки оформлення бібліографічного опису різних

видів джерел 23

ДОДАТОК З Приклад виконання завдання з обробки

символьних рядків 25

ДОДАТОК К Блок-схеми алгоритмів 31

ДОДАТОК Л Лістинг алгоритму розв’язання задачі з обробки

символьних рядків 33

Список літератури 35

– Конец работы –

Эта тема принадлежит разделу:

МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ КУРСОВИХ РОБІТ З ДИСЦИПЛІНИ « ПРОГРАМУВАННЯ»

Міністерство освіти і науки молоді та спорту України... Дніпропетровський національний університет ім Олеся Гончара...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Int substr (src, dest, num, len);

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Завдання 1. Робота з символьними рядками.
Мета:Придбання практичних навичок в роботі з символьними рядками з викоританням індексних виразів та вказівників, забезпечення функціональної модульності. П

Завдання 2. Робота з масивами.
Мета:Придбання практичних навичок в роботі з одномірними та двомірними масивами. Постановка задачі Заданий двомірний масив дійсних чисел (

Вступна частина
Титульний аркуш– це перша сторінкакурсової роботи. оформлюється відповідно стандарту ДНУ [3]. На титульному аркуші обов'язково повинні бути підписи виконавця та керівника. Зразок о

Текст роботи
Основна частина тексту курсової роботи складається з таких структурних елементів: - Розділ – перший ступінь поділу тексту, позначається номером та обов’язково має з

Формули
  Набір формул здійснюється у формульному редакторі Microsoft Equation 3.0. Якщо формул більше однієї, їх нумерують арабськими цифрами в межах розділу. Номер формули складається із но

Заключна частина
  Висновки– містять повні та чіткі висновки за результатами виконаної роботи, оцінку повноти виконання завдання, висвітлюють особливості функціонування або межі засто

Таблиця Д.1. Символи даних
Назва та призначення Символ Дані (відображує дані, носій яких не визначений)  

Таблиця Д.2. Символи процесу
Назва та призначення Символ Процес (виконання операції або групи операцій)

Стандарти
  9. Документація. Звіти у сфері науки і техніки. Структура і правила оформлення[Текст] : ДСТУ 3008: 1995. – [Чинний від 1996 — 01— 01]. – К. : Держспоживстандарт України, 1995. – 36

З.1.1 Умова завдання
Скласти функцію substr(s1, s2, n, l)для обробки символьних строк та програму для перевірки роботоспроможності функції. Призначення функції: виділення з рядку s1 пі

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги