Івано-Франківський фінансово-комерційний 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Івано-Франківський фінансово-комерційний



Івано-Франківський фінансово-комерційний

Кооперативний коледж ім. С. Граната

 

 

ЗАВДАННЯ

 

ДЛЯ ПРОВЕДЕННЯ НАВЧАЛЬНОЇ ПРАКТИКИ

По алгоритмічних мовах програмування

 

 

Спеціальність: Програмування для ЕОМ та АТ

 

 

Івано-Франківськ,2005


Практика по Сi

 

Сi - одна з найпоширенiших мов програмування, яка поєднує в собi достоїнства мов високого i низького рiвня: широкi можливостi системного програмування, багатство використовуваних типiв, вiдносна простота i яснiсть основного ядра мови i дуже широкий набiр використовуваних бiблiотечних функцiй.

Для проведення практики студент повинен переписати дискету, на якiй записаний мiнiмальний набiр файлiв для запуску i функцiонування Turbo C.

 

Опис файлiв та директорiй:

- tc.exe - загрузочний файл;

- INCLUDE - директорiя включень;

- LIB - директорiя об'єктних бiблiотек;

- TEXT - директорiя, де мiстяться текстовi файли:

a) dovidnyk.txt - короткий довiдник по опцiях меню, ключових словах i бiблiотечних функцiях Turbo C;

b) pr1.txt, pr2.txt, pr3.txt, pr4.txt, pr5.txt, pr6.txt, pr7.txt, pr8.txt-текст завдань практичних робiт 1-8;

c) prakt.txt - пояснення до виконання завдань, приклади програм.

При виконаннi завдань практики постiйно виникає питання про вивiд на папiр результатiв роботи програми. Рекомендується 3 способи:

1. безпосереднiй вивiд на друк через використання операторiв fprintf() чи fputs() i потоку stdprn;

2. знiмання копiї екрану користувача. При цьому бажано використовувати функцiї clrscr(), gotoxy(), window(), прототипи яких мiстяться у файлі conio.h, а також функцiї введення-виведення у активному вiкнi cputs(), cgets(), cprintf(), cscanf() (аналогiчнi функцiям puts(), gets(), printf(), scanf()), описанi також у файлі conio.h.

3. вивiд у файл на диску з пiзнiшим його роздруковуванням. Пiсля набуття певного досвiду роботи з Сi найдоцiльнiше вживати цей спосiб.

 


Практичне заняття №1

Мета заняття – ознайомлення з роботою в середовищі Turbo C. Для кращого засвоєння рекомендується ввести приведені нижче програми i ознайомитися з результатами виконання:


1. /*pозмipи, якi займають piзнi типи даних*/

#include <stdio.h>

main()

{int i;

printf("int %d\n",sizeof(int));

printf("float %d\n",sizeof(float));

printf("double %d\n",sizeof(double));

printf("char %d\n",sizeof(char));

printf("long %d\n",sizeof(long));

printf("short %d\n",sizeof(short));

printf("signed %d\n",sizeof(signed));

printf("unsigned %d\n",sizeof(unsigned));

}


2. # include <stdio.h>

main ()

{ int k,*u;

scanf ("%d",&k);

u=&k;

printf("число %d\n",k);

printf ("адреса %d\n",&k);

printf("адресоване %d\n",*u);

printf("u %d\n",u);

scanf("%d",&k);

}


3. #include <stdio.h>

main()

{int i,j;

printf(" АМЕРИКА ВIДКРИТА У 1492 РОЦI\n");

printf("Який зараз рiк?\n");

scanf("%d",&i);

j=i-1492;

printf("\n");

printf(" З ЧАСУ ВIДКРИТТЯ АМЕРИКИ ПРОЙШЛО %d РОКIВ\n",j);

}


4. #include <stdio.h>

main()

{ float i,j,s,h,*a;

puts(" ВВЕДIТЬ ДВА ЧИСЛА\n");

scanf("%f",&i);

scanf("%f",&j);

s=i+j;

h=i/j;

a=&h;

printf("СУМА ЧИСЕЛ %5.3f,ЇХ ЧАСТКА %5.3f, ЯКА ЗНАХОДИТЬСЯ ПО \

АДРЕСУ %d\n",s,h,&a);

printf("АДРЕСОВАНЕ ЧИСЛО %5.3f",*a);

}


5. #include <stdio.h>

main()

{ float pl,fact,proc;

int n;

char tn[5];

scanf("%s",tn);

puts("-------------------------------------");

puts("|# п/п|табельний| план | факт | % |");

puts("| | номер | | | |");

puts("-------------------------------------");

n=1;

pl=234;

fact=220;

proc=fact/pl*100;

printf("| %d |%5s |%5.2f|%5.2f|%5.2f|",n,tn,pl,fact,proc);

}

 

КОНТРОЛЬНІ ЗАПИТАННЯ

1. Робота в iнтегрованому середовищi Turbo C.

2. Головне меню Turbo C.

3. Встановлення конфiгурацiї Turbo C.

4. Компiляцiя i виконання програми.

5. Режим вiдладки.

6. Робота з вiкном Break/Watch.

7. Структура програми на мовi Сi.


Практичне заняття №2

Мета виконання завдання - ознайомлення з меню Turbo C, типами величин, операторами введення-виведення, форматами введення-виведення, а також адресами i покажчиками даних. Для кращого засвоєння рекомендується ввести приведену нижче програму i ознайомитися з результатами виконання:

 


Приклад 1

/*pозмipи, якi займають piзнi типи даних*/

#include <stdio.h>

main()

{int i;

printf("int %d\n",sizeof(int));

printf("float %d\n",sizeof(float));

printf("double %d\n",sizeof(double));

printf("char %d\n",sizeof(char));

printf("long %d\n",sizeof(long));

printf("short %d\n",sizeof(short));

printf("signed %d\n",sizeof(signed));

printf("unsigned %d\n",sizeof(unsigned));

}


Приклад 2 (Приклад програми, що працює з адресами та покажчиками)

# include <stdio.h>

main ()

{ int k,*u;

scanf ("%d",&k);

u=&k;

printf("число %d\n",k);

printf ("адреса %d\n",&k);

printf("адресоване %d\n",*u);

printf("u %d\n",u);

scanf("%d",&k);

}


 

КОНТРОЛЬНІ ЗАПИТАННЯ

1. Робота в iнтегрованому середовищi Turbo C. Встановлення конфiгурацiї. Компiляцiя i виконання програми. Режим вiдладки. Робота з вiкном Break/Watch.

2. Структура програми на мовi Сi.

3. Класифiкацiя символiв мови.

4. Знаки операцiй, прiоритет виконання операцiй.

5. Типи даних. Перетворення типiв.

6. Функцiї введення-виведення, особливостi їх роботи з рiзними типами даних.

7. Символьний тип даних, його представлення в пам'ятi машини.

 

Варіанти завдання

Варiант 1

1. Скласти програму, яка б повiдомляла, що Джон народився у 1940р., запитувала, який тепер рiк, i видавала вiк Джона.

2. Скласти програму, яка вводила б 2 числа в форматi f, знаходила їх суму, добуток, адресу добутку, адресоване число, i виводила б результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми

 


№ п/п Табельний Нараховано Заборгованiсть До видачi

номер

 

 

Варiант 2

1. Скласти програму, яка б повiдомляла, що хрещення Русi вiдбулося в 988р., запитувала, який тепер рiк, i друкувала, скiльки рокiв пройшло з того часу.

2. Скласти програму, яка вводила б два числа в форматi f, знаходила їх суму, частку, адресу частки, адресоване число, i виводила результат на екран.

3. Скласти програму для виведення шапки i одного рядка машинограми:

 
 


№ п/п Номенклатурний Прихiд Видано Залишок

номер

 
 


Варiант 3

1. Скласти програму, яка б повiдомляла, що битва пiд Берестечком вiдбулася в 1649р., запитувала, який тепер рiк, i друкувала, скiльки рокiв пройшло з того часу.

2. Скласти програму, яка вводила б два цiлi числа, знаходила iх добуток, рiзницю, адресу рiзницi, число, записане пiд цiею адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми

 

 
 


№ п/п Дiльниця Цех Видано

 

 
 


Варiант 4

1. Скласти програму, яка б повiдомляла, що Лiлi народилася в 1980р., запитувала, який тепер рiк, i видавала вiк Лiлi.

2. Скласти програму, яка вводила б два дiйснi числа, знаходила iх суму, частку, адресу суми, число, записане пiд цiею адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми

 
 


№ п/п Табельний Нараховано Заборгованiсть До видачi

номер

Варiант 5

1. Скласти програму, яка б повiдомляла, що битва пiд Ватерлоо вiдбулася в 1815 р., запитувала, який тепер рiк, i друкувала, скiльки рокiв пройшло з того часу.

2. Скласти програму, яка вводила б два цiлi числа, знаходила їх суму, рiзницю, адресу рiзницi, число, записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п Номенклатурний Наявнiсть Видано Залишок

номер

 

 
 


Варiант 6

1. Скласти програму, яка б повiдомляла, що будинок побудований у 1960р., запитувала, який тепер рiк, i друкувала, скiльки рокiв пройшло з того часу.

2. Скласти програму, яка б вводила дiйсне число, знаходила його квадрат, адресу квадрату, число, записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п Табельний План Факт %

номер

 

 
 


Варiант 7

1. Скласти програму, яка повiдомляла б, що мiст побудований в 1900р., запитувала, який тепер рiк, i друкувала, скiльки рокiв пройшло з того часу.

2. Скласти програму, яка вводила б два дiйснi числа, обчислювала рiзницю їх квадратiв, знаходила адресу рiзницi i число, записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 

 


№ п/п С/г культура План Факт %

 

 
 


Варiант 8

1. Скласти програму, яка б запитувала ваше iм'я, рiк народження, i друкувала ваш вiк.

2. Скласти програму, яка вводила б цiле число, знаходила числа, вiдповiдно бiльшi i меншi на 1, Їх адреси та числа, записанi пiд цими адресами, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 

 
 


№ п/п Табельний План Факт %

номер

 
 


Варiант 9

1. Скласти програму, яка запитувала б ваше прiзвище, iм'я та вiтала вас.

2. Скласти програму, яка вводила б два цiлi числа, знаходила б iх суму, частку нацiло, адресу частки, число, записане пiд цiею адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми

 
 


 

№ п/п Номенклатурний Наявнiсть Видано Залишок

номер

 
 


Варiант 10

1. Скласти програму, яка б повiдомляла, що мiсто засноване в 1256р., запитувала, який тепер рiк, i друкувала, скiльки рокiв пройшло вiд заснування мiста.

2. Скласти програму, яка вводила б два дiйснi числа, обчислювала суму iх квадратiв, знаходила адресу суми i число, записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п Прiзвище Зарплата Премiя Всього

 

Варiант 11

1. Скласти програму, яка запитувала б, де ви народилися, i друкувала фразу типу: "Вiтаю жителя мiста _______".

2. Скласти програму, яка вводила б два дiйснi числа, обчислювала добуток їх квадратiв, знаходила адресу добутку i число, записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п Матерiал План Факт %

 
 


Варiант 12

1. Скласти програму, яка повiдомляла б, що Америка вiдкрита в 1492р., запитувала, який тепер рiк, i повiдомляла, скiльки рокiв пройшло з часу вiдкриття Америки.

2. Скласти програму, яка вводила б два дiйснi числа, знаходила їх суму, частку, адресу частки, число, записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п Табельний План Факт %

номер

 
 


Варiант 13

1. Скласти програму, яка запитувала б вас про ваше iм'я, мiсце народження i вiтала вас.

2. Скласти програму, яка вводила б цiле число, знаходила числа, вiдповiдно бiльшi i меншi на 1, iх адреси та числа, записанi пiд цими адресами, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п Прiзвище Зарплата Вирахувано Всього

 
 


Варiант 14

1. Скласти програму, яка б запитувала ваше iм'я, рiк народження, i друкувала ваш вiк.

2. Скласти програму, яка вводила б два цiлi числа, знаходила iх добуток, рiзницю, адресу рiзницi, число, записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п Номенклатурний Прихiд Видано Залишок

номер

 

Варiант 15

1. Скласти програму, яка б повiдомляла, що хрещення Русi вiдбулося в 988р., запитувала, який тепер рiк, i друкувала, скiльки рокiв пройшло з того часу.

2. Скласти програму, яка вводила б два цiлi числа, знаходила б їх суму, частку нацiло, адресу частки, число записане пiд цiєю адресою, i виводила результат на екран.

3. Скласти програму для виводу шапки i одного рядка машинограми:

 
 


№ п/п С/г культура План Факт %

 

 

 
 


Задача 2.1.

#include <stdio.h>

main()

{int i,j;

printf(" АМЕРИКА ВIДКРИТА У 1492 РОЦI\n");

printf("Який зараз рiк?\n");

scanf("%d",&i);

j=i-1492;

printf("\n");

printf(" З ЧАСУ ВIДКРИТТЯ АМЕРИКИ ПРОЙШЛО %d РОКIВ\n",j);

}

Задача 2.2.

#include <stdio.h>

main()

{ float i,j,s,h,*a;

puts(" ВВЕДIТЬ ДВА ЧИСЛА\n");

scanf("%f",&i);

scanf("%f",&j);

s=i+j;

h=i/j;

a=&h;

printf("СУМА ЧИСЕЛ %5.3f,ЇХ ЧАСТКА %5.3f, ЯКА ЗНАХОДИТЬСЯ ПО \

АДРЕСУ %d\n",s,h,&a);

printf("АДРЕСОВАНЕ ЧИСЛО %5.3f",*a);

}

Задача 2.3.

Приклад програми, яка працює з адресами та покажчиками.

 

#include <stdio.h>

main()

{ float pl,fact,proc;

int n;

char tn[5];

scanf("%s",tn);

puts("-------------------------------------");

puts("|# п/п|табельний| план | факт | % |");

puts("| | номер | | | |");

puts("-------------------------------------");

n=1;

pl=234;

fact=220;

proc=fact/pl*100;

printf("| %d |%5s |%5.2f|%5.2f|%5.2f|",n,tn,pl,fact,proc);

}

 

Практичне заняття №3

Мета завдання - ознайомитися з умовними операторами та операторами циклу в мовi Сi.

Нижче приведенi фрагменти програм, якi мiстять умовнi оператори та оператори циклу:

1. if (h[i]>m)

{m=h[i];nm=i;}

 

2. return(x>0?1:x?-1:0);

 

3. if (x>0) m=1; else m=-1;

 

4. switch(i)

{case 1:puts("сiчень");break;

case 2:puts("лютий");break;

...

default:puts("помилка");

}

 

5. for (i=0;i<6;i++)

scanf ("%d",&k[i]);

 

6. for(i=0;i<10;printf("%d ",*(k+i)),i++)

 

 

7. do {is=0;

for(i=0;i<=n;i++)

if(a[i-1]>a[i])

{c=a[i-1];a[i-1]=a[i];a[i]=c;is=1;}

}

while(is);

 

8. while(a>e) a\=2;

 

Контрольнi питання

1. Логiчнi операцiї. Операнди логiчних операцiй. Використання виразiв числового типу в ролi умов.

2. Помiченi оператори. Оператор безумовного переходу goto.

3. Умовний оператор if.

4. Тернарна операцiя?

5. Оператор switch. Оптимiзацiя оператора.

6. Оператори циклу do, while, for. Способи пiдвищення гнучкостi оператора for.

7. Оператор переривання циклу break та переходу на наступний крок циклу continue.

 

ВАРІАНТИ ЗАВДАНЬ

Варiант 1

1. Ввести 3 числа, вибрати i надрукувати найменше з них.

2. Не використовуючи операторiв циклу, вводити i друкувати числа, поки не буде введений 0. Обчислити Їх суму, кiлькiсть, середнє арифметичне.

3. Написати програму, яка пiсля вводу порядкового номера дня тижня виводила б його назву.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 2

1. Ввести 3 числа, вибрати i надрукувати найбiльше з них.

2. Не використовуючи операторiв циклу, вводити числа з iнтервалу (10,20) i друкувати їх квадрати. Ввiд припинити, коли чергове число вийде за межi iнтервалу.

3. Написати програму, яка запитувала б про мiсяць вашого народження (порядковий номер) i виводила повiдомлення типу: "Ви народилися взимку".

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 3

1. Написати програму, в якiй вводилося б дiйсне число, визначався його знак i друкувавася результат: 1-для додатнього числа, -1 - для вiд'ємного, 0 для 0.

2. Не використовуючи операторiв циклу, ввести 6 чисел, знайти їх суму i середнє арифметичне.

3. Написати програму, яка б пiсля вводу порядкового номера мiсяця виводила його назву.

 

Варіани 4

1. Написати програму, у якiй вводилося б цiле число i визначалося, чи дiлиться воно на 5.

2. Не використовуючи операторiв циклу, ввести 4 числа i знайти їх добуток.

3. Написати програму, яка б пiсля вводу порядкового номеру дня тижня визначала, робочий вiн чи вихiдний.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 5

1. Написати програму, у якiй вводився б рiк i визначалося, чи вiн високосний.

2. Не використовуючи оператори циклу, ввести кiлька цiлих чисел i знайти суму i кiлькiсть тих з них, якi кратнi 5. Ввiд припинити пiсля вводу 0.

3. Написати програму, яка б пiсля вводу порякового номера мiсяця визначала, до якого кварталу вiн вiдноситься.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 6

1. Написати програму, у якiй вводилися б 3 цiлi числа, вибиралося найменше з додатнiх, а якщо всi 3 числа вiд'ємнi, видавалося б повiдомлення про це.

2. Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть додатнiх, суму i кiлькiсть вiд'ємних. Ввiд припинити пiсля вводу 0.

3. Написати програму, яка б пiсля вводу порядкового номера мiсяця визначала, скiльки в ньому днiв (для невисокосного року).

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 7

1. Написати програму, у якiй вводилися б 3 цiлi числа, вибиралося найбiльше з вiд'ємних, а якщо всi 3 числа додатнi, виводилося б повiдомлення про це.

2. Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi бiльшi 10. Ввiд припинити пiсля вводу 0.

3. Написати програму, в якiй кольорам спектру присвоювався б порядковий номер (1-7), i пiсля вводу порядкового номера виводилася б назва кольору.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 8

1. Написати програму, у якiй вводилися б 3 цiлi числа i вибиралося найменше з них.

2. Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi кратнi 10. Ввiд припинити пiсля вводу 0.

3. Написати програму, яка б пiсля вводу порядкового номера ноти визначала її назву.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 9

1. Написати програму, у якiй вводилися б 3 цiлi числа i вибиралося найбiльше з них.

2. Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi знаходяться в iнтервалi (1,8). Ввiд припинити пiсля вводу 0.

3. Написати програму, яка б пiсля вводу порядкового номера мiсяця визначала, до якого пiврiччя вiн вiдноситься.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 10

1. Написати програму, у якiй вводилися б 3 цiлi числа i вибиралося найбiльше за модулем.

2. Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi знаходяться в iнтервалi (1,8) i кратнi 2. Ввiд припинити пiсля вводу 0.

3. Написати програму, яка б пiсля вводу порядкового номера мiсяця визначала, скiльки в ньому днiв (для високосного року).

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 11

1. Написати програму, у якiй вводилися б 3 цiлi числа i виводилися у порядку зростання.

2. Не використовуючи операторiв циклу, ввести 4 цiлi числа i знайти добуток тих з них, якi бiльшi 0.

3. Написати програму, у якiй пiсля вводу вiдповiдного порядкового номера виводиться напрям (пiвнiч, пiвдень, захiд, схiд).

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 12

1. Написати програму, у якiй вводилися б 3 цiлi числа i виводилися в порядку спадання.

2. Не використовуючи оператори циклу, ввести 4 числа i знайти добуток тих з них, якi знаходяться в iнтервалi (1,4).

3. Написати програму, в якiй вводилися б покази барометра, i, залежно вiд них, видавався прогноз погоди: 990 i менше - дощ, 990-1100 - змiнна, бiльше 1100 - сухо.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 13

1. Написати програму, у якi вводилися б три числа i виводилися в порядку зростання.

2. Не використовуючи операторiв циклу, ввести ряд чисел i знайти суму, кiлькiсть i середне арифметичне вiд'емних. Ввiд припинити пiсля вводу 0.

3. Написати програму, у якiй вводилася б кiлькiсть жителiв мiста (у тис.чл), i визначалося: мале воно (<100 тис.чл), середне (100-400 тис.чл), велике (400 тис-мiльйон), мiльйнер (бiльше мiльйона).

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 14

1. Написати програму, у якiй вводилися б 3 цiлi числа i виводилися в порядку спадання iх модулiв.

2. Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi кратнi 7. Ввiд припинити пiсля вводу 0.

3. Написати програму, в якiй кожнiй частинi свiту присвоювався б вiдповiдний номер i пiсля вводу цього номера виводилася б вiдповiдна назва.

4. Виконати завдання 2, використовуючи оператори циклу.

Варiант 15

1. Написати програму, у якiй вводилися б 3 цiлi числа i виводилися в порядку зростання iх модулiв.

2. Не використовуючи операторiв циклу, ввести кiлька чисел i знайти суму i кiлькiсть тих з них, якi кратнi 2 i бiльших 8. Ввiд припинити пiсля вводу 0.

3. Написати програму, в якiй кожнiй планетi Сонячноi системи присвоювався б порядковий номер i пiсля вводу цього номера виводилася б вiдповiдна назва.

4. Виконати завдання 2, використовуючи оператори циклу.

 

Задача 3.1.

#include <stdio.h>

main()

{ float x;

int y;

puts("введiть число:");

scanf("%f",&x);

y=(x>0?1:x?-1:0);

printf("\n,y=%d",y);

}

Задача 3.2.

#include <stdio.h>

main()

{ int a,i=0,s=0;

float sa;

m:printf("введiть число\n");

scanf("%d",&a);

s+=a;

i++;

if(i<6) goto m;

sa=s/6.0;

printf("s=%d",s);

printf(" sa=%f",sa);

}

Задача 3.3.

#include <stdio.h>

#include <string.h>

main()

{ int x;

char k[10];

a: puts("введiть порядковий номер мiсяця");

scanf("%d",&x);

switch (x)

{ case 1:{ strcpy(k,"сiчень"); break; }

case 2:{ strcpy(k,"лютий"); break; }

case 3:{ strcpy(k,"березень"); break; }

case 4:{ strcpy(k,"квiтень"); break; }

case 5:{ strcpy(k,"травень"); break; }

case 6:{ strcpy(k,"червень"); break; }

case 7:{ strcpy(k,"липень"); break; }

case 8:{ strcpy(k,"серпень"); break; }

case 9:{ strcpy(k,"вересень"); break; }

case 10:{ strcpy(k,"жовтень"); break; }

case 11:{ strcpy(k,"листопад"); break; }

case 12:{ strcpy(k,"грудень"); break; }

default: x=0;

}

if (x==0){ puts("\n такого мiсяця немае:\n");

goto a;

}

printf("\n мiсяць %d називаеться %s",x,k);

}

Задача 3.4.

#include <stdio.h>

#include <conio1.h>

main()

{ int i,j,s=0;

float sa;

clrscr();

for(i=0;i<6;i++)

{printf("\n");

printf("введи число \n");

scanf("%d",&j);

s+=j;

}

sa=s/6;

printf("сума чисел=%d",s);

printf("\n");

printf("середне арифметичне=%f",sa);

}

Практичне заняття №4

Мета завдання – отримання навиків побудови таблиць функцій та використання оператора циклу з параметром.

Контрольнi питання

1. Які засоби доцільно використовувати для організації циклів із заданим числом повторень?

2. Вкажіть призначення і правила організації циклу.

3. Перерахуйте можливі способи організації циклу із заданим числом повторень.

4. Що таке ітераційний циклічний процес?

 

ВАРІАНТИ ЗАВДАНЬ

Завдання 1:

Скласти програму обчислення значень функцiї f(х) на вiдрiзку А,В] в точках Хi = А + iН, де Н = (В-А)/М, М - задане цiле число.

 

 
 


Номер Функцiя ПАРАМЕТРИ

варіанта

А В М

1. x-sin(x) 0 p/2 10

2. sin(x) p/4 p/2 15

3. cos(x) p/3 2p/3 20

4. tg(x) 0 p/4 10

5. ctg(x) p/4 p/2 15

6. arcsin(x) 0 1 20

7. arccos(x) 0.5 1 10

8. arctg(x) 2 7 15

9. sin(x)-cos(x) 0 p/2 20

10. xsin(x) 0 3p 10

11. sin(1/x) p/8 2/p 15

12. cos(1/x) p/4 4/p 20

13. sin(x2) p/6 2p/3 10

14. cos(x2) p/3 3p/2 15

15. sin(x)+tg(x) 0 p/4 20

16. cos(x)+ctg(x) p/4 p/2 10

17. tg(x/2) 0 2p/3 15

18. tg(x/2)+cos(x) p/2 p 20

19. ctg(x/3)+sin(x) p/4 p/2 10

20. sin(x/4)/2 p/2 p 15

 

Завдання 2:

Обчислити значення функцiї, заданої в таблицi (у вiдповiдностi з варiантом завдання). Здiйснити вивiд значень у вигляді таблицi.

 
 


Варіант Функція Умова Вхідні дані Діапазон

і крок зміни

аргумента

 
 


2

1 at ln t 1<=t<=2 a=-0.5 0<=t<=3

y = 1 t<1 b=2 0.15

at

e cos bt t>2

 
 


px2-7/x2 x<1.3 a=1.5 0.8 <=x<=2

2 y = ax2+7Öx x=1.3 0.1

lg(x+7Öx) x>1.3

       
 
 
   


3 ax2+bx+c x<1.2 a=2.8 1 <=x<= 2

w = a/x+ Öx2+1 x=1.2 b=-0.3 0.05

(a+bx)/ Öx2+1 x>1.2 c=4


4 px2-7/x2 x<1.4 a=1.65 0.7 <=x<= 2

Q = ax2+7Öx x=1.4 0.1

ln (x+7Ö| x+a |) x>1.4

       
 
 
   


5 1.5 cos2 x x<1 a=2.3 0.2 <=x<= 2.8

y = 1.8 ax x=1 0.2

(x-2) 2 + 6 1<x<2

3 tg x x>2


6 x 3Ö x-a x>a a=2.5 1 <=x<= 5

w = x sin ax x=a 0.5

e-ax cos ax x<a

 
 


7 bx - lg bx bx<1 b=1.5 0.1 <=x<= 1

Q = 1 bx=1 0.1

bx + lg bx bx>1


sin x lgx x>3.5 - 2 <=x<= 5

8 y = cos2 x x<=3.5 0.25

       
 
 
   


lg(x+1) x>1 a=20.3 0.5 <=x<= 2

9 f = sin2 Ö| ax |) x<=1 0.1

 
 


(ln3x+x2) /Ö x+t x<0.5 t=2.2 0.2 <=x<= 2

10 z = Ö x+t+1/x x=0.5 0.2

cos x+t sin2 x x>0.5


11 a+b x<2.8 a=2.6 0 <=x<= 7

s = ex +cos x b=-0.39 0.5

 

(a+b) / (x+1) 2.8<=х<6

ex +sin x x>=6


a lg x+ 3Ö | x | x>1 a=0.9 0.8 <=x<= 2

12 y = 2a cos x+3x2 x<=1 0.1


 

13 a / i + bi2+c i<4 a=2.1 0 <=i<=12

w= i 4<=i<=6 b=1.8 1

ai + bi3 i>6 c=-20.5

       
 
 
   


a sin ((i2+1) / n) sin((i2+1) / n) > 0 a=0.3 1<=i<= 10

14 z = 1

cos (i + 1 /n) sin((i2+1) / n) < 0 n=10

 

           
 
 
   
     
 

 


Ö at2 + b sin t +1 t<0.1 a=2.5 -1 <=t<= 1

15 w = at+b t=0.1 b=0.4 0.2

Ö at2 + b cos t + 1 t>0.1

 
 

 


Практичне заняття №5

Масиви в мовi Сi.

При виконаннi цього завдання планується знайомство з описом масивiв в мовi Сi, розмiщенням масивiв у пам'ятi, способами передачi масиву як параметра функцiї, а також реалiзацiєю деяких алгоритмiв впорядкування масивiв. При виконаннi завдання використовуються рiзнi типи циклiчних операторiв.

Нижче приведенi програми, якi iлюструють правила роботи з масивами.


Приклад 1

/*iлюстрацiя розмiщення масивiв в пам'ятi i передачi масиву як параметра функцiї*/

# include <stdio.h>

int mini(int h[],int j)

{int i,m=h[0],nm=0;

for(i=1;i<j;i++)

if (h[i]<m)

{m=h[i];

nm=i; }

return(nm);

}

Main ()

{ int k[10],i,*u,p;

for (i=0;i<10;i++)

{ scanf ("%d",&k[i]);

u=&k[i];

printf("число %d\n",k[i]);

printf ("адреса %d\n",&k[i]);

printf("адресоване %d\n",*u);

printf("u %d\n",u);

}

printf("адреса масиву %d\n",k);

printf("введено масив\n");

for(i=0;i<10;printf("%d ",*(k+i)),i++);

p=mini(k,10);

printf("\n мiн ел мас %d з ном %d\n",

k[p], p);

scanf("%d",&p);

}

 

Наступний приклад, крiм роботи з масивами, iлюструє також роботу з вихiдними потоками (перенаправлення виводу в файл на диску)

Приклад 2

/*визначення максимального елемента масиву*/

#include <stdio.h>

#include <conio.h>

FILE *stream;

int maxi(int h[],int l)

{int i,m=h[0],nm=0;

for(i=1;i<l;i++)

if (h[i]>m)

{m=h[i];

nm=i;

}

return(nm);

}

Main ()

{ int k[6],i,*u,p;

stream=fopen("a:res1.txt","w");

for (i=0;i<6;i++)

scanf ("%d",&k[i]);

fprintf(stream,"введено масив\n");

for(i=0;i<6;fprintf(stream,"%d ",*(k+i)),i++);

p=maxi(k,6);

fprintf(stream,

"\n максимальний елемент масиву %d з номером %d\n",k[p],p);

fclose(stream);

}

 


Для впорядкування масивiв пропонуються такi алгоритми, реалiзованi на мовi Сi.

Main()

{ int b[10],m=10,i;

for (i=0;i<m;i++)

scanf("%d",&b[i]);

printf("кiнець вводу\n");

bubble(b,m);

for (i=0;i<m;i++)

printf("%d ",b[i]);

printf("\n");

}

 

Main()

{ int b[10],m=10,i;

for (i=0;i<m;i++)

scanf("%d",&b[i]);

printf("кiнець вводу\n");

insert(b,m);

for (i=0;i<m;i++)

printf("%d ",b[i]);

printf("\n");

}

 

Main()

{ int b[10],m=10,i;

for (i=0;i<m;i++) scanf("%d",&b[i]);

printf("кiнець вводу\n");

select(b,m);

for (i=0;i<m;i++)

printf("%d ",b[i]); printf("\n");

}


Контрольнi питання

1. Тип даних масиви. Представлення масивiв у пам'ятi машини.

2. Зв'язок масивiв та покажчикiв.

3. Передача масивiв у якостi параметрiв функцiЇ.

4. Багатовимiрнi масиви.

5. Iнiцiалiзацiя масивiв.

 

ВАРІАНТИ ЗАВДАНЬ

Виконати такi завдання:

1. Органiзувавши керований ввiд, ввести ряд чисел i сформувати масив з тих, якi задовольняють певну умову (див. нижче). Перебачити довжину масиву не бiльше 6 елементiв.

2. Для непарних варiантiв - впорядкувати масив, для парних варiантiв - знайти максимум i мiнiмум. Алгоритм вибрати самостiйно.

3. Знайти середне арифметичне, середне геометричне, середнє гармонiчне i дисперсiю масиву.

 

Умови, яким повиннi задовольняти елементи масивiв:

 


Варiант 1

Цiлi числа, кратнi 3.

 

Варiант 2

Дiйснi числа, бiльшi 10.

 

Варiант 3

Дiйснi числа, бiльшi 1 i меншi e (exp(1)).

 

Варiант 4

Цiлi числа бiльшi 4, якi при дiленнi на 3 дають остачу 1.

 

Варiант 5

Цiлi числа, по модулю меншi 5.

 

 

Варiант 6

Дiйснi додатнi числа, десятковий логарифм яких менший 1.22.

 

Варiант 7

Дiйснi додатнi числа, натуральний логарифм яких менший 2.1.

 


Варiант 8

Цiлi числа бiльшi 6, якi при дiленнi на 5 дають остачу 2.

 

Варiант 9

Цiлi числа, по модулю меншi 8 i бiльшi 3.

 

Варiант 10

Дiйснi числа, по модулю меншi 7 i бiльшi 4.

 

Варiант 11

Цiлi додатнi числа, якi при дiленнi на 4 дають остачу 2.

 

Варiант 12

Дiйснi числа такi, що їх квадрати меншi або рiвнi 4.

 

Варiант 13

Дiйснi числа такi, що квадратнi коренi з їх модулiв меншi 3.1415.

 

Варiант 14

Дiйснi числа з iнтервалу (6,9).

 

Варiант 15

Цiлi простi числа.


 

Main()

{ float b[7],d=1,a,pi=3.1415,s1=0,s2=0,s3=0,sa,sg,sgl,st;

int q,i=0,j;

FILE *stream;

do { puts ("введiть число ");

scanf ("%f",&a);

if(sqrt(a)<pi)

{ b[i]=a;i++;

s1+=a;

s2+=1/a;

d*=a;

}

puts ("для продовження-0");

scanf ("%d",&q);

}

while (!q);

stream=fopen("res.txt","w");

fprintf(stream,"введений масив");

for(j=0;j<i;fprintf(stream," %5.3f",*(b+j++)));

insert(b,i);

fprintf(stream,"\n просортований масив");



Поделиться:


Последнее изменение этой страницы: 2016-04-08; просмотров: 254; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.187.103 (0.59 с.)