Алгоритм решения задачи

Автор: Пользователь скрыл имя, 23 Декабря 2012 в 18:16, курсовая работа

Краткое описание

Задача 22: Создать и вывести на экран новый массив, состоящий из элементов входного массива, в котором поменять местами предпоследний положительный элемент с элементом, который имеет наибольшее значение, а также их разность вставить перед элементом с ближайшим к нему индексом.

Оглавление

Вступ………………………………...…………………………………………….4
Опис завдання…………………………...………………………………………..6
Постановка завдання………………..…………………………………...……….7
Алгоритм розв’язку задачі…………………….…….………………………….11
Тестування програми…………………………….……………………….…….13
Програма на мові Сі з реалізації розробленого алгоритму розв’язку задачі .......15
Результати дослідження……..………………………………....……………….17
Оцінка результатів виконання програми……………………………………...27
Синтаксичні елементи мови Сi, які використані в програмі ……………………28
Висновок…………………………………………………………………………29

Файлы: 1 файл

Курсова робота.doc

— 639.00 Кб (Скачать)

Результати другого тестуючого масиву:

Index

Znachennya elementy masuvy

1

-20,00

2

-43,00

3

-66,00

4

-89,00

5

-112,00

6

-135,00

7

-158,00

8

-181,00

9

-204,00

10

-227,00


 

Результат програми: передостаннього позитивного значення немає.

Копії екранних вікон з тестуючою програмою подані у відповідному пункті.

 

Програма  на мові Сі з реалізації розробленого алгоритму розв’язку задачі

#include <stdio.h>

#include <math.h>

int main ()

{

 const int Rk=11;

float M[11], buf, Riz, M_nov[12], vids;

int k, ind, indp, imax, n, nabl, c;

printf ("%s %13s     \n", "Index", "Znachennya elementy masuvy");

for(k=1; k<Rk; k++)

{

      M[k]=13.4*cos(fabs(k))*sin((pow(k,2))-2.20);

     printf("\n%7d      %4.2f \n", k, M[k]);

}

printf ("%s %13s     \n", "Index", "Znachennya elementy novoho masuvy");

for (n=1; n<Rk; n++)

{

     M_nov[n]=M[n];

    printf ("\n %7d      %4.2f\n", n, M_nov[n]);/*Vuvodumo na ekran index novoho masuvy ta yogo znachennya*/

}

c=0;

for(n=1; n<Rk; n++)

{

     if (M_nov[n]>0)

    c++;

}

if (c<2)

     printf ("\n Peredostann`oho pozutuvnoho net \n");

     else

{

for(n=1; n<Rk; n++)

{

     if (M_nov[n]>0)

     indp=ind;  

     ind=n;

}

printf ("\n indp=%d  \n", indp); /* index peredostannioho pozutuvnoho elementy*/

printf ("\n M_nov[indp]=%4.2f \n", M_nov[indp]); /* znachennya peredostannioho pozutuvnoho elementy */

for (n=imax=1; n<Rk; n++)

{

if (M_nov[n]>M_nov[imax])

imax=n;

}

printf ("\n max=%4.2f \n", M_nov[imax]); /* Vuvodumo na ekran maksumal`ne znachennya*/

printf ("\n imax=%d \n", imax); /*Vuvodumo na ekran index maksumal`noho znachennya*/

buf=M_nov[imax];

M_nov[imax]=M_nov[indp];

M_nov[indp]=buf;

printf ("%s     %13s\n", "Index", "Znachennya elementy zminenoho novoho masuvy");

for (n=1; n<Rk; n++)

printf ("\n %7d        %4.2f\n", n, M_nov[n]);/*Vuvodumo na ekran index zminenoho novoho masuvy ta yogo znachennya*/

Riz=M_nov[indp]-M_nov[imax];

printf ("\n Riz=%4.2f \n", Riz); /* riznuca peredostannioho pozutuvnoho ta maksumal`noho */

vids=Riz-1;

for (n=1; n<Rk; n++)

{

     if(fabs(Riz-n)<vids)

{

          nabl=n;

          vids=Riz-n;

}

}  

printf("\nnabl=%4d\n",nabl); /* Vuvodumo na ekran index naibluzhcui do riznuci*/

for (n=11; n>nabl; n--)

M_nov[n]=M_nov[n-1];  

M_nov[nabl]=Riz;

printf ("%s     %13s\n", "Index", "Znachennya elementy zminenoho novoho masuvy");

for (n=1; n<Rk+1; n++)

{  

     printf ("\n %7d      %4.2f \n",n,  M_nov[n]);

}

}

return 0;

}

 

 

Результати  дослідження 

1. Екранні вікна з налагодженою програмою

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Екранне вікно з результатами виконання програми

 

 

 

 

 

3. Екранне вікно з тестуючою програмою

Тестування 1.

 

 

 

 

Тестування 2.

 

Оцінка результатів виконання програми

Для виконання  програми було розроблено постановку задачі в якій детально розписано дії. Також створений  алгоритм розв’язку задачі, за яким писався текст програми. У результатах виконаної програми присутній вихідний масив, новий масив, повідомлення про передостанній позитивний елемент, його індекс, найбільше значення та його індекс, різниця  цих двох елементів та індекс найближчий до неї, а якщо немає передостаннього позитивного елемента, то на екран виводиться повідомлення про це.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Синтаксичні елементи мови Сi, які використані в програмі

Директива #include широко використовується для включення в програму так званих заголовних файлів, що містять прототипи бібліотечних функцій, і тому більшість програм на Сі починаються з цієї директиви.

math.h - заголовний файл стандартної бібліотеки мови програмування Сі, розроблений для виконання простих математичних операцій.

Функція main, з якої починається виконання Сі-програми

float – тип даних дійсний.

int – тип даних цілий.

if () – умовний оператор. Синтаксис if(умова) оператор 1; else оператор 2;

Оператор for() - це найбільш загальний спосіб організації циклу. Він має наступний формат:

for (вираз 1; вираз  2; вираз 3) тіло 

Вираз 1 зазвичай використовується для встановлення початкового значення змінних, керуючих циклом. Вираз 2 - це вираз, що визначає умову, за якої тіло циклу буде виконуватися. Вираз 3 визначає зміна змінних, керуючих циклом після кожного виконання тіла циклу.

printf - узагальнена  назва ряду функцій або методів  стандартних або широковідомих комерційних бібліотек, або вбудованих операторів деяких мов програмування, використовуваних для форматного виведення - виведення в різні потоки значень різних типів, відформатованих згідно заданим шаблоном. Найбільш універсальною функцією, яка дозволяє ввести дані з клавіатури, є функція scanf, у програмах на Cі цю функцію можна було використовувати, коли необхідно завершити роботу програми після натискання користувачем будь-якої клавіші

/*    */- коментарі в тексті програми.

= - присвоєння.

 

 

Висновок

Отже, я набула практики роботи над задачами складнішими, ніж типові. Вивчила необхідні розділи, адаптувала відомі засоби програмування для розв'язування конкретних задач з особливостями, використовувала різні методи та інструментальні засоби, застосувала у комплексних задачах знання з різних розділів курсу.

 

 


Информация о работе Алгоритм решения задачи