Long chysl, chmax;                   // зміннi програми 



int sumc, maxsum=0, kc, kmax=1;

int n=0, dr;

system("chcp 1251");

printf("\n\n Вводьте числа (0 – кінець):\n");

do {                   // цикл введення і перевірки чисел 

  scanf("%ld", &chysl);     // зчитування числа 

  if(chysl==0) break;       // 0 перериває цикл 

  sumc=SumaCyfr(chysl,&kc); // визначення суми і

                

  if(sumc>maxsum) {         // якщо сума цифр найбільша 

     maxsum=sumc;           // фіксуємо параметри числа 

     kmax=kc;

     chmax=chysl;

  }

} while(++n<MAXN);   // перевірка кількості введених чисел

dr=(50+kmax)/2;        // довжина рамки

LiniaRamky1(dr);       // виведення верхньої частини рамки

printf("Найбільшу суму цифр - %2d має число %ld", maxsum, chmax);

LiniaRamky2(dr,kmax);  // виведення нижньої частини рамки

getchar(); getchar();

}

/* Функція, що визначає суму і кількість цифр заданого числа */

int SumaCyfr(long c, int *pkc)

{ int sum=0, kcf=0;

while(c>0) {

  sum+=c%10;

  c/=10;

  kcf++;

}

*pkc=kcf;

return sum;

}

/* Функція виведення верхньої частини рамки */

Void LiniaRamky1(int dr)

{ int k;

printf("\n\n\t");

for(k=0; k<dr; k++) // цикл виведення верхньої лінії рамки

  printf("*=");

printf("*\n\t*\t");

}

/* Функція виведення нижньої частини рамки */

Void LiniaRamky2(int dr, int kc)

{ int k, kprob;

kprob=(kc&1 ? 6:7);    // кількість кінцевих пробілів

for(k=0; k<kprob; k++) // виведення пробілів після числа

  printf(" ");

printf("*\n\t");

for(k=0; k<dr; k++)     // виведення нижньої лінії рамки

  printf("*=");

printf("*\n");

}

Лабораторна робота № 7

ТИПИ ДАНИХ, ОПЕРАЦІЇ ТА ВИРАЗИ МОВИ С.
РОБОТА З ПІДСИСТЕМОЮ ДОПОМОГИ HELP

Мета роботи: Ø практично закріпити знання про оголошення даних, класи і типи операцій, правила запису й обчислення виразів у С-програмах;
Ø здобути навики роботи з підсистемою допомоги Help інструментального середовища програмування.

Завдання лабораторної роботи

1. Перед виконанням завдання лабораторної роботи повторити теоре­тичний матеріал про формування виразів і класифі­кацію та властивості операцій мови С. Окремо зупинитися на області застосування операцій кожного класу, старшинстві операцій та їхній асоціативності, правилах узгодження типів операндів у арифметичних виразах і операціях присвоєння.

2. У конспекті лекцій та підручниках переглянути інформацію про математичні функції та макроконстанти, оголошені в заголов­ному файлі <math.h>. Зокрема, звернути увагу на типи параметрів функцій та значення, яке повертає кожна з функцій.

3. У п. 1 індиві­дуального завдання записано математичний вираз, в якому застосовуються різні алгебраїчні та тригонометричні функції та константи. Виписати ці функції та визначити для кожної з них, яка зі стандартних математичних функцій мови С виконує відповідні обчислення. Якщо необхідної функції нема в бібліотеці <math.h>, то треба реалізувати її через відповідні математичні вирази або перетворення на основі наявних в бібліотеці функцій. Щоби детальніше розглянути потрібні математичні функції і константи, скористатися підсистемою допомоги Help інструментального середовища програмування. Зауваження: для роботи з підсистемою Help комп’ютер має бути підключений до Інтернету.

4. Відкрити розділ Help головного меню середовища і виконати команду View Help (Ctrl+F1). Ознайомитися зі структурою інтерфейса вікна допомоги. Потім перейти у ліве вікно і активізувати закладку Contents (зміст). Пройтися по дереву допомоги. Подивитися, як воно структурно організоване, та що відбувається, коли вибрати якийсь із розділів.

5. Відкрити закладку Index (покажчик), що дає змогу швидко знайти потрібну інформацію про компоненти мови. У вікні введення закладки набрати math constants. Переглянути список математичних констант, що висвітлився і занотувати їх у звіт. Зверніть увагу, що для роботи з цими макро­константами попередньо треба встановити _USE_MATH_DEFINES:

#define _USE_MATH_DEFINES

#include <math.h>

6. Подібним чином відкрити підрозділ math routines, що містить коротку інформацію про математичні функції середовища програмування. Вибрати зі списку ті функції, які потрібні для запису виразу з п. 1 індиві­дуального завдання, та переглянути детальну інформацію про кожну з них, клацнувши мишкою на назві функції. Коротко занотувати основну інформацію про одну із функцій, передусім кількість і типи її параметрів та тип результуючого значення. Наприкінці багатьох параграфів допомоги наведені приклади застосування. Проаналізувати програму прикладу для функції, яка розгля­дається. Можна скопіювати її у вікно редактора і виконати, щоб дослідити результати для різних значень даних.

7. Ознайомившись з інформацію про математичні функції та константи з бібліотеки <math.h>, записати заданий вираз з п. 1 індиві­дуального завдання. Попередньо треба оголосити змінні, які використо­вуються у цьому виразі: вважати, що змінні k, m, іn – цілочислові, а всі інші мають дійсний тип. Записуючи вираз, звернути окрему увагу на забезпечення необхідного порядку виконання операцій та типи результату операцій. Якщо потрібно, то виконати перетворення типів операндів через відповідні операції мови С.

8. У п. 2 індиві­дуального завдання наведено оголошення декількох змінних і два вирази. Треба обчислити значення кожного з цих виразів, враховуючи порядок виконання операцій. Всі розрахунки мають бути послідовно наведені у звіті. Окремо виділити кінцеве значення кожного виразу. Для виконання побітових операцій треба розглянути внутрішні двійкові коди операн­дів, пам’ятаючи, що від’ємні числа зберігаються у допов­ню­вальному коді. Результат цих операцій подати в 16-й і /або 10-й формах.

9. Уважно прочитати умову задачі з п. 3 індиві­дуального завдання. Визначити, які змінні і яких типів потрібні для складання заданого виразу. Оголосити ці змінні. Потім записати відповідний до умови вираз. Зауваження: 1) відповіддю на завдання має бути один вираз (групу виразів чи оператори писати не треба); 2) якщо в умові поставлено запитання, яке потребує словесної відповіді, то доцільно щоби значенням виразу був символьний рядок. Наприклад, вираз, що визначає, яке з двох заданих дійсних чисел  fst та scnd менше, може бути таким:

double fst, scnd;

fst < scnd ? "перше" : "друге"

10. Відкрити вікно редактора з текстом якоїсь із програм (це може бути програма з прикладів Help або одна з програм попередніх лабораторних робіт). Отримати швидку довідку про ключові слова, операції, оператори, макроси, функції або інші компоненти мови. Для цього поставити курсор редактора на потрібне слово чи знак операції та натиснути F1 (Help). Переглянути інформа­цію у вікні допомоги, яке відкриється, і коротко записати її.

11. Оформити звіт, в якому до кожного пункту завдання лабораторної роботи записати, що було зроблено та які отримано результати, навести всі вирази, виконані розрахунки та кінцеві результати, написати висновок.


Дата добавления: 2018-04-15; просмотров: 1208; Мы поможем в написании вашей работы!

Поделиться с друзьями:






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