
- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 1
- •Обчислювальна техніка та програмування - 1
- •Символи кодової таблиці ascii
- •Умовні переходи на мові "паскаль"
- •1: Begin
- •Цикли на мові "паскаль"
- •Підпрограми на мові "паскаль"
- •Function Alfha(a,b:real; c:byte):real;
- •Function Beta:integer;
- •Procedure Sorter (a,b:real; c:byte; Var X,y:real);
- •Procedure Beep;
- •Uses crt;
- •Window (x1,y1,x2,y2);
- •Window (10,5,45,15);
- •Window (1,1,80,25);
- •TextColor (yellow);
- •TextColor (14);
- •Текстові та типізовані файли мови "паскаль"
- •Assign (f1, ’Data.Pas’);
- •Reset (f2);
- •Rewrite (f2);
- •Seek (f2, 7);
- •FileSize (f2),
- •FilePos (f2).
- •Побудова графіків функцій на мові "паскаль"
- •MoveTo (200, 100);
- •SetLineStyle (0,0,1);
- •OutText (’Текст для виводу’);
- •OutTextXy (200,100,’Текст для виводу’);
- •SetTextStyle (0,0,0);
- •SetTextJustify (1,1);
- •PutPixel (150,50,green);
- •ClearDevice;
- •Бібліотечний модуль на мові "паскаль"
- •Interface
- •Implementation
- •Динамічні змінні мови "паскаль"
- •SetFillStyle (1, white);
- •Об’єктно-орієнтоване програмування на мові "паскаль"
- •New (Person, Init);
- •Destructor Done; Virtual;
- •Dispose (Person, Done);
- •Форматований ввід та вивід даних на мові “cі”
- •Printf(“керуючий рядок”,аргумент1,аргумент2, ...);
- •Scanf(“керуючий рядок”,аргумент1,аргумент2,...);
- •Scanf(“%d %f %c %s”,&I,&j,&k,l);
- •Scanf(“%d %*d %d”, &I,&j);
- •Scanf(“%d,%d”,&n,&m);
- •Оператори організації переходів на мові "сі"
- •1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:
- •Організація циклів на мові "сі"
- •Одновимірні та двовимірні масиви на мові "сі"
- •Char b[30];
- •Char a[10][20];
- •Записи, вкладені записи, масиви записів на мові "сі"
- •Int month;
- •Int year;};
- •Int class, age;};
- •Робота із бінарними та текстовими файлами
- •File *lst;
- •Int fflush (вказівник_на_файл);
- •Int fgetc(вказівник_на_файл);
- •Int fputc(вказівник_на_файл);
- •Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);
- •Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);
- •Int fseek(вказівник_файла, зміщення, поч. Значення);
- •3. Контрольні запитання
- •Робота з функціями на мові “сі”
- •Тип_функції назва_функції(тип1 параметр1, ..., тип_n параметр_n);
- •Int main(int argc, char *argv)
- •3.1. Який синтаксис функцій у мові “сі”.
- •Комп’ютерний практикум № 17 графічний режим екрану на мові “ci”
- •Initgraph(int *driver, int *mode, char *path);
- •Void *pimage;
- •Void *malloc(об'єм_пам’яті_в_байтах);
- •Imagesize(x1,y1,x2,y2);
- •Putimage(x1, y1, вказівник, вид_вставки);
- •Вирішення диференційних рівнянь методом ейлера
- •Основи роботи в середовищі “turbo pascal 7.0” та “turbo c 3.0”
- •Комп’ютерний практикум № 17. Графічний режим екрану
Scanf(“керуючий рядок”,аргумент1,аргумент2,...);
Керуючий рядок аналогічний як і для функції printf. Якщо після % стоїть знак *, це означає заборону присвоювання.
Аргументи функції scanf на відміну від printf повинні бути вказівниками на відповідні значення (перед іменем змінної ставиться знак взяття адреси &).
Приклади використання функції scanf:
Scanf(“%d %f %c %s”,&I,&j,&k,l);
Команда виконує наступне: зчитує значення, введенні з клавіатури через пропуски, змінної і в десятковому вигляді, змінної j як дійсного числа, змінної k як символу, змінної l як рядка символів. Перед l немає знаку & оскільки рядок є масивом символів, наприклад l[20], а l при цьому є адресою першого елементу масиву.
Scanf(“%d %*d %d”, &I,&j);
При введення значень 5 7 9 змінній i присвоїться значення 5, j - 9, значення 7 буде проігноровано (через знак * після %).
Scanf(“%d,%d”,&n,&m);
У цьому випадку інформацію необхідно вводити через кому.
Приклад 1. Продемонструвати введення та виведення інформації цілого та дійсного типів, символів та беззнакових величин.
#include <stdio.h>
main()
{
int a;
char b;
float c;
double d;
short x;
long y;
unsigned z;
scanf("%d %c %f %lf %d %ld %u",&a,&b,&c,&d,&x,&y,&z);
printf("%d %c %9.5f %19.11f\n %d %ld %u",a,b,c,d,x,y,z);
}
Цифри 9.5 для змінної c типу float в прикладі означають, що виділяється загалом 9 позицій для виведення змінної, причому 5 з них для розрядів після коми. Аналогічно 19.11 для змінної d типу double.
Приклад 2. Продемонструвати виведення рядків символів з різним вирівнюванням та форматом, та виведення дійсних чисел у форматах f, e, g.
#include <stdio.h>
main( )
{
char s[30];/*задається рядок з 30 символів*/
float a=86.531;
printf("%s\n","Electrical Drive Department");
/*виведення звичайного тексту*/
printf("Input String\n");
scanf("%s",s);
/*зчитування рядка*/
printf("( 20s):%20s\n",s);
/*виводить рядок на екран, вирівнювання вліво від 20-ої позиції*/
printf("( -20s):%-20s\n",s);
/*виводить рядок на екран, вирівнювання вправо від 1-ої позиції*/
printf("( 20.10s):%20.10s\n",s);
/*цифра після крапки задає максимальне число символів, які необхідно*/
/*вивести з рядка при вирівнюванні вліво від 20-ої позиції*/
printf("( -20.10s):%-20.10s\n",s);
/*цифра після крапки задає максимальне число символів, які необхідно*/
/*вивести з рядка при вирівнюванні вправо від 1-ої позиції*/
printf("( .10s):%.10s\n",s);
/*з рядка буде виведено 10 символів в поле з 10 символів*/
/*зайві символи відкидаються*/
printf("%%\n");
/*приклад виведення знаку %*/
printf("a=%e\n",a);
printf("a=%f\n",a);
printf("a=%g\n",a);
/*приклади виведення дійсного числа в різних форматах*/
}
Приклад 3. Продемонструвати можливості введення даних через пропуск, без пропуску, через кому, ігнорування введених даних, обмеження кількості символів, які присвоюються масиву символів.
#include <stdio.h>
main( )
{
int a,b;
char c[50],d,f;
printf("Input 3 integer and string\n");
/*введіть 3 цілих і рядок*/
scanf("%d %*d %d %s",&a,&b,c);
/*демонстрація ігнорування другої введеної змінної*/
printf("a=%d; b=%d; c=%s\n",a,b,c);
printf("Input integer and symbol without space\n");
/*введіть ціле і символ без пропуску*/
scanf("%d%c",&a,&d);
printf("a=%d; d=%c\n",a,d);
printf("Input 2 unteger devided by comma\n");
/*введіть 2 цілих, розділених комою*/
scanf("%d,%d",&a,&b);
printf("a=%d; b=%d\n",a,b);
printf("Input string\n");
/*введіть рядок*/
scanf("%3s\n",c);
/*з введеного рядка змінній с присвоюються лише 3 перші символи*/
printf("c=%s",c);
}
У випадку, коли необхідно виконати зчитування або виведення на екран рядкових змінних, доцільно використовувати функції puts() та gets() для виведення та введення відповідно, наприклад:
puts("Electric drive");
gets(vstring);
Приклад 4. Продемонструвати зчитування рядка символів за допомогою команди gets та виведення його на екран за допомогою команди gets та виведення його на екран за допомогою команди puts.
#include <stdio.h>
main( )
{
char q[40];
puts("Input string");
/*введіть рядок символів*/
gets(q);
/*зчитування рядка символів з клавіатури*/
puts(q);
/*виведення рядка символів на екран*/
}
ЗАВДАННЯ НА РОБОТУ
Розробити та запустити у роботу програму на мові програмування “СІ”, яка вирішує задачу відповідно до заданого нижче варіанта.
Зчитати два цілих числа a та b, та дійсне число с з клавіатури, введені через кому . Розрахувати значення виразу d=(a2+b2)/(c-b), та вивести a, b, c, d на екран у наступному форматі: для кожної змінної виділено 10 позицій; для дійсних чисел виводити 3 знаки після коми, вирівнювання по правому краю поля, виведення через пробіл.
Зчитати два цілих числа k та m, та дійсне число p з клавіатури, введені через пробіл. Розрахувати значення виразу u=(k-m2)/(p+k+m), та вивести k, m, p, u на екран у наступному форматі: для кожної змінної виділено 15 позицій; для дійсних чисел виводити 1 знак після коми, вирівнювання по лівому краю поля, виведення через кому.
Зчитати два дійсних числа j та u, та ціле беззнакове число m з клавіатури, введені через крапку з комою ;. Розрахувати значення виразу l=(j+u-m)/(ju-m2), та вивести j, u, m, l на екран у наступному форматі: для кожної змінної виділено 8 позицій; для дійсних чисел виводити 5 знаків після коми, вирівнювання по лівому краю поля, виведення через кому.
Зчитати 4 символи, введені через кому. Вивести числові коди прочитаних символів на екран у наступному форматі: для кожної змінної виділено 3 позиції, вирівнювання по правому краю поля, виведення через крапку з комою.
Зчитати три цілих беззнакових числа a, b, c, введених через знак /;. Розрахувати значення виразу k=(a+b+c), та вивести на екран a, b у вісімковій формі, k та с – у шістнадцятковій у наступному форматі: для кожної змінної у вісімковій формі виділено 8 позицій, у шістнадцятковій – 4 позиції, вирівнювання по правому краю поля, виведення через пробіл.
Зчитати 6 цілих коротких числа, введених через пробіл. Вивести числа на екран у шістнадцятковій формі у наступному форматі: дві змінні у одному рядку, на початку рядку горизонтальна табуляція, для кожної змінної виділено 5 позицій, вирівнювання по правому краю поля, виведення через знак /.
Зчитати 4 символи та одне ціле беззнакове число, що записані одним рядком. Вивести змінні на екран у вісімковій формі у наступному форматі: на початку рядку горизонтальна табуляція, для кожної змінної виділено 6 позицій, вирівнювання по лівому краю поля, виведення через кому.
Зчитати поточну дату із клавіатури у наступному форматі день/місяць/рік як змінні цілого типу. Вивести дату у форматі: місяць день рік, із одним вільним рядком між введеним та виведеним значенням.
Зчитати дійсні числа a, b, c, записані через знак -. Розрахувати значення d=(a2+b2)/c. Вивести змінні на екран у наступному форматі: одна змінна у рядку, на початку рядку горизонтальна табуляція, для кожної змінної виділено 10 позицій, 5 позицій після коми, вирівнювання по правому краю поля, виведення через пробіл.
Зчитати 6 символів, записаних одним рядком. Вивести десяткові коди змінних на екран у наступному форматі: дві змінні у рядку, для кожної змінної виділено 20 позицій, вирівнювання по правому краю поля, виведення через кому.
КОНТРОЛЬНІ ЗАПИТАННЯ
Які команди слугують для форматованого введення-виведення.
Який формат керуючого рядка у командах форматованого введення-виведення.
Як змінити ширину поля, що відводиться для виведення змінної
Які команди застосовуються для введення-виведення рядків.
За допомогою яких команд реалізується введення та виведення окремих символів.
Комп’ютерний практикум № 11