творюються 2 групи по 2 поля. Спрощений вираз виглядаєКарта Карно для трьох змінних має форму циліндра, тому клітинки в протилежних кінцях одного рядка є сусідніми. У вигляді циліндра карту Карно малювати незручно, і тому зазвичай її представляють в наступному виглядіВ одній групі можуть бути об'єднані 2, 4 чи 8 повних кон'юнкцій.ПрикладЗаписати і максимально спростити нормальну форму АБО, задану в карті КарноМожуть бути утворені 2 групи з 4 клітинок. Спрощене рівнянняКарта Карно для 4 змінних:Варіанти мінімізації:ПрикладСкласти схему, що задовольняє заданій таблиці істинностіКарта КарноСхемаЗавдання до лабораторної роботи1. Побудувати схему перемикача "2 з 3" на елементах АБО-НЕПеремикач "2 з 3" - на виході 1, коли 2 з 3 входів встановлені в 1.2. Побудувати схему контролю парностіСхема контролю парності - 1 на виході тоді, коли парне число входів дорівнює 1.Лабораторна робота № 3АЛГОРИТМИ ЛІНІЙНОЇ СТРУКТУРИ, РЕАЛІЗОВАНІ НА С++Теоретична частинаУ загальному мова програмування базується на двох основних поняттях - дані і алгоритми. Дані-це інформація, яку обробляє програма. Алгоритми - методи, які використовує програма. Мова С++ є процедурною, тобто основний акцент в ній робиться на алгоритмах. Це означає, що спочатку визначається послідовність дій, а потім ці дії реалізуються з допомогою мови програмування. Програма містить набір процедур, які комп'ютер повинен виконати для досягнення необхідного результату. Програмування на С++ є структурним. Програми проектуються за принципом "зверху вниз", ідея якого полягає у розбитті великої задачі на менші і такі, що легко розв'язуються.Дані в С++ бувають прості і складені. Прості типи наведено в таблиці.Типи даних:|
Тип | Розмір, байт | Діапазон | Опис | | char signed char | 1 | Від - 128 до 127 | Символьний тип. Містить один символ або рядок символів. Кожен символ представляється одним байтом. Компілятор розрізняє як окремі наступні типи: char, signed char і unsigned char | | unsigned char | 1 | Від до 255 | Символьний тип. Кожен символ представляється одним байтом (значення в діапазоні від 0 до 255) | | short signed short | 2 | Від - 32768 до 32767 | Цілий тип. Скорочене позначення типу short int. Довжина цього типу поза залежністю від використовуваного компілятора завжди більше або дорівнювати довжині значення типу char і менше або дорівнює довжині значення типу int | | Unsigned short | 2 | Від 0 до 65535 | Беззнаковий цілий тип | | int signed int | 42 | Від - 2147483648 до 2147483647 | Цілий тип. Довжина цього типу поза залежністю від використовуваного компілятора завжди більше або дорівнює довжині значення типу short int | | unsigned int | 4 | Від 0 до 4294967259 | Беззнаковий цілий тип | | intn | n/8 | | Цілий тип, розмір у бітах якого визначається значенням п, і може бути рівним 8, 16, 32 або 64 бітам | | long signed long | 4 | Від - 2147483648 до 2147483647 | Цілий тип. Скорочене позначення типу long int | | unsigned long | 4 | Від до 4294967259 | Беззнаковий цілий тип | | float | 4 | Від 3.4Е-38 до 3.4Е+38 | Тип даних із плаваючою крапкою | | |
До складених типів належать покажчики, масиви, перерахування, об'єднання, структури, класи. Більш детально вони будуть розглянуті в наступних лабораторних роботах. Програмування включає в себе наступні етапи 1. Скориставшись текстовим редактором, написати текст програми і зберегти її в файлі. Цей файл буде вихідним кодом програми. Допустимі розширення імен вихідного коду 2. Скомпілювати вихідний код. Це означає виконання програми, яка транслює вихідний файл у машинний код. Файл, що містить трансльований код, називається об'єктним кодом. 3. Зв'язати об'єктний код програми з об'єктними кодами функцій, використаних в програмі (додатковим кодом) і скомпонувати їх у єдину програму. Файл, який містить цю програму, називається виконуваним кодом. Програми на С++ мають наступну структуру 1. Директиви препроцесора #include Змушує препроцесор включити у файл програми файли стандартних бібліотек або будь-який інший файл. 2. Блок опису вхідних змінних 3. Заголовок функції main () і її тіло у фігурних дужках{}. Тіло функції містить інструкції для комп'ютера. Кожна завершена функція називається оператором і завершується крапкою з комою. Слово, що стоїть перед назвою функції, називається типом функції (фактично, це тип результату, одержаного при виконанні функції). У круглих дужках після назви функціі мітиться список аргументів (параметрів) функції. 4. Оператор return, що завершує виконання функції main () Нижче наведено приклад програми, що здійснює перемноження двох чисел #include <stdio. h> // підключення стандартної бібліотеки вводу/виводу #include <math. h> // підключення стандартної бібліотеки математичних функцій float x,y,z; // змінні типу „з плаваючою крапкою” float main () { printf ("Enter the number x: "); // вивід на екран тексту вимоги введення 1-го множника scanf ("%f",&x); // зчитування введеного числа у форматі„з плаваючою крапкою” printf ("Enter the number y: "); // вивід на екран тексту вимоги введення 2-го множника scanf ("%f",&y); // зчитування введеного числа у форматі„з плаваючою крапкою” z=x*y; printf ("result\n%f\n",z); // виведення результату множення у форматі„з плаваючою крапкою”, \n-перехід на новий рядок return (0); } Стандартні бібліотеки Специфікація ANSI мов С и C++ визначає набір функцій стандартної бібліотеки. Незважаючи на те що стандартна бібліотека дуже велика, у ній можна виділити кілька великих функціональних груп. Стандартні функції вводу/виводу. Їхні описи включені у файл заголовків stdio. h і віртуальний заголовок cstdio. У цю групу включають функції консольного вводу/виводу, такі як printf, scanf, gets, puts, getchar і putchar. Сюди також входять функції файлового вводу/виводу fopen (для відкриття файлів), fprintf, fscanf, fputs, fgets і ряд інших (для читання/ запису текстових файлів), fread і fwrite (для читання/ запису двійкових файлів). Також до цієї групи відносяться функції одержання поточної позиції у файлі й установки нової позиції у файлі (fseek, ftell, rewind), що дозволяють організувати довільний доступ до даних у файлі Нижче приведені основні функції консольного вводу/виводу · getchar () повертає черговий символ із клавіатури як ціле; · gets (s) читає символи з клавіатури до появи символу нового рядка і поміщає їх у рядок s (сам символ нового рядка в рядок не включається); · printf (fmt, par1, par2,.) виводить рядок параметрів par1, раг2 і т.д. у форматі, визначеному рядком fmt на стандартний пристрій виводу (звичайно монітор). Повертає число виведених символів (див. опис функції printf); · putchar (ch) виводить символ ch на стандартний пристрій виводу. Якщо вивід успішний, повертається значення ch,; · puts (s) виводить рядок s на стандартний пристрій виводу, додаючи наприкінці символ нового рядка. Повертає ненегативне значення при успіху або EOF - при помилці; · scanf (fmt, par2, раг2,.) уводить рядок параметрів раr1, раг2 і т.д. у форматі, обумовленому рядком fmt зі стандартного пристрою вводу (із клавіатури), повертає число змінних, котрим привласнене значення Для реалізації потокового вводу/виводу використовується функції. Описані в iostream. h Функції роботи з рядками. Їхні описи включені у файл заголовків string. h і віртуальний заголовок cstring. У цю групу входять функції роботи з простими рядками типу char*: strlen повертає довжину рядка, strcpy копіює рядок в іншу і strcat додає рядок у кінець рядка. Функція stremp використовується для порівняння двох рядків на співпадіння. Інші важливі функції: strncat, strnemp, strncat і strstr. Є також ряд функцій типу strchr для пошуку необхідного символу. Функція strtok корисна для розбивки рядка на окремі елементи. · strcat (s1fs2) додає s2 до s1; · strcmp (s1, s2) порівнює рядки і повертає негативне (якщо s1 менше s2), нульове (якщо s1 дорівнює s2) або позитивне (якщо s1 більше s2) значення; · strcpy (s1, s2) копіює s2 у s1; · strlen (s) повертає довжину рядка (без врахування символу завершення рядка); · strncat (s1, s2, n) додає s2 до s1, але не більш n символів; · strncmp (s1, s2, n) аналогічна strcmp, але порівнює не більше n символів; · strncpy (s1, s2, п) копіює s2 у s1, але не більш n символів; · strstr (s1, s2) пошук першого входження підрядка s2 у рядок s1. · strchr (s,ch) повертає покажчик на перше входження символу ch у рядок s, якщо його немає, то повертається null; · strcoll (s1,s2) аналог strcmp, але враховує установки локалізації · strcspn (s1, s2) повертає значення індексу будь-якого з символів з s2 у рядку s1; · strerror (n) повертає покажчик на рядок з описом помилки номер n; · strpbrk (s1, s2) аналогічна strcspn, але повертає покажчик, а не індекс; · strrchr (s, ch) аналогічна strchr, але пошук ведеться з кінця рядка; strspn (s1, s2) повертає індекс першого символу в s1, відсутнього в s2; Функції визначення типу символу. Їхні описи включені у файл заголовків ctype. h і віртуальний заголовок її type. Ці функції дозволяють визначити приналежність символу до визначеної категорії. Математичні функції. Їхні описи включені у файл заголовків math. h і у віртуальний заголовок cmath. До цієї групи відносяться такі стандартні тригонометричні і гіперболічні функції, sin, cos, tan, asin, acos, atan, sinh, cosh і tanh. Також включаються функції pow для обчисленні ступеня числа, ехр для обчислення експонентної функції і логарифмічні функції log і log 10, а також функція для обчислення найближчого більшого цілого ceil, функції для обчислення найближчого меншого цілого floor, fabs, fmod, frexp, ldexp, modf і функції обчислення квадратного кореня sqrt. Необхідно відзначити, що такі математичні по своїй природі функції, як abs і rand, описані у файлі stdlib. h, а не в math. h. Функції роботи з пам'яттю. Їхні описи включені у файл заголовків stdlib. h і у віртуальний заголовок cstdlib. В основному ці функції використовуються в бібліотеці для сумісності з мовою С. До них відносяться функції malloc, free, calloc і realloc. У мові С++ для тих же цілей переважно використовуються оператори new і delete. Робота з програмою Microsoft Visual C++ Головне вікно програми має вигляд, зображений на рис.1 Щоб почати роботу, необхідно обрати FileNewFilesC++ Source File (рис.2). Рис.1. Загальний вигляд головного вікна програми Microsoft Visual C++ Після завершення набору тексту програми натиснути кнопку (Build). Після виправлення помилок в разі їх виникнення, запустити програму на виконання, натиснувши кнопку Run Рис.2. Вибір типу створюваного файлу. Завдання до лабораторної роботи1. Скласти програму, яка спочатку запитує ім'я особи, а потім з нею вітається.2. Задано три точки. Визначити відстань від них до початку координат. Координати ввести з клавіатури.3. Визначити дробову частину середнього арифметичного трьох чисел, що вводяться з клавіатури.Навести повний текст програм з поясненнями.Лабораторна робота № 4РЕАЛІЗАЦІЯ АЛГОРИТМІВ З РОЗГАЛУЖЕННЯМИ В С++
Страницы: 1, 2, 3
|