5100

Создание консольных приложений в среде Visual C++

Курсовая

Информатика, кибернетика и программирование

Цель работы: закрепление основных теоретических положений, изложенных в лекциях по курсу Программирование на языках высокого уровня, отработка навыков практического программирования в среде VisualC++ при создании консольных программ, в...

Русский

2012-12-03

52.5 KB

30 чел.

Цель работы: закрепление основных теоретических положений, изложенных в лекциях по курсу «Программирование на языках высокого уровня»,  отработка навыков практического программирования в среде Visual C++ при создании консольных программ, включая многофайловые.

Задания курсовой работы и особенности алгоритмов реализации.

Задание №1    Даны натуральные числа N и M (N>M). Вычислить

#include "stdafx.h"

#include "stdlib.h"

#include "math.h"

int fact(int k)

{

       int res = 1;

       for (int i = 1; i <= k; ++i)

       {

               res *= i;

       }

 

       return res;

}

double resh(int M,int N)

{

 int k=0,f=0;

 double res;

 for(k=M; k<N;k++)

 {f=fact(k);

  res+=k*k*log(f);

 }

 return res;

}

void funct()

{   int m,n;

 double result;

   printf("Vvedite M\n");

scanf("%d",&m);

printf("Vvedite N\n");

scanf("%d",&n);

result=resh(m,n);

printf("Otvet %f",result);

getchar();

}

 res  – это переменная, которая позволяют хранить, модифицировать и извлекать значения. Переменная, или объект – это именованная область памяти, к которой мы имеем доступ из программы; туда можно помещать значения и затем извлекать их. 

double-обозначает формат числа с плавающей запятой 

Задание №2

Найти  натуральное  число из интервала [a,b] с максимальной суммой делителей. (Для нахождения суммы делителей числа использовать функцию.)

#include "stdafx.h"

#include "stdlib.h"

#include "math.h"

int delit(int a,int b)

{

 int sum=0,int summax=1;

 int ch=1,i;

 for ( i=a;i<b;i++)

{

 sum=0;

 for (int k=1;k<(i%2+1);k++)

  if ((i%k)==0)

   sum+=k;

         sum+=i;

 if (sum>summax)

{

 summax=sum;

 ch=i;

}

}

printf("Delitel %d\n",sum);

 return i;

}

void funct2()

{   int a,b,c;

printf("Vvedite a");

scanf("%d",&a);

printf("Vvedite b");

scanf("%d",&b);

c=delit(a,b);

printf("Chislo=%d",c);

 getchar();

}

Задание №3

Во введенной строке символов (последний '*') подсчитать общее количество цифр и букв ‘с’.

#include "stdafx.h"

#include "stdlib.h"

#include "string.h"

int count_c(char str[])

{  char c='c';

  int d=0;

 for (int i=1; i<strlen(str);i++)

{

  if (strcmp(&str[i],&c))

   d++;

}

 return d;

}

int count_dig(char str[])

{   char *digit="1234567890";

 int d=0;

 for (int i=1; i<strlen(str);i++)

{

  if (strcmp(&str[i],digit))

   d++;

}

 return d;

}

void funct3()

{   char *str;

printf("vvedite predlogenie\n");

gets(str);

printf("v predlojenie %d -c\n",count_c(str));

printf("v predlojenie %d -cifr\n",count_dig(str));

 getchar();

}

Функция strcmp() сравнивает в лексикографическом порядке две строки и возвращает целое значение, зависящее следующим образом от результата сравнения. 

Функция COUNT всегда возвращает значение типа int. 

Переменную типа char можно рассматривать двояко: как целое число, занимающее 1 байт .

strlen — функция стандартной библиотеки, для возврата длины нуль-терминированной строки без символа окончания строки 

Задание 4

Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str.


#include
 "stdafx.h"
#include "stdlib.h"
#include "string.h"
void myfunct(char str[])
{
char *chars=("qwertyuiopasdfghjklzxcvbnm,./';][{}:?><QWERTYUIOPASDFGHJKLZXCVBNM");
char *p;
int i;
for (i=0; i<strlen(str);i++)
{
p=strtok(&str[i],chars);
puts(p); 
}
}
void funct4()
{ char str[100];
printf("Vvedite stroku\n");
gets(str);
myfunct(str);
getchar();
getchar();
getchar();
}

Задание №5

Даны вещественные числа a и b (а<b). Сформировать матрицу Х[10,10], элементами которой являются вещественные случайные числа, равномерно распределенные на отрезке [а,b]. Определить сумму элементов матрицы, сумма номеров строк и столбцов которых равна n.

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

/*  Даны вещественные числа a и b (а<b). Сформировать матрицу Х[10,10],

 элементами которой являются вещественные случайные числа, равномерно распределенные на отрезке [а,b].

 Определить сумму элементов матрицы, сумма номеров строк и столбцов которых равна n.*/

#include <iostream>

#include <iomanip>

#include <stdlib.h>

#include <time.h>

using namespace std;

int main()

{

       const int SIZE = 10;//создаём переменную под величину массива(размерность)

       int matrix[SIZE][SIZE], a, b, sum, n;

       srand(time(NULL));      

       //запрашиваем верхнюю и нижнюю границы рандомизации

       cout << "Enter a: ";

       cin >> a;

       cout << "Enter b: ";

       cin >> b;

       cout << "Enter n: ";

       cin >> n;

       //проходим по ячейкам матрицы и заполняем

       for(int i = 0; i < SIZE; i++)

       {

               for(int j = 0; j < SIZE; j++)

               {

                       matrix[i][j] = a + rand() % (b + 1);

               }

       }

       //проходим еще раз, но проверяем выполнение условия задачи и закидываем подходящие элементы в переменную sum

       

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

               {

                       for (int j = 0;j < 10;j++)

                               {

                                       if (i+j==n)

                                               {

                                                       sum=sum+matrix[i][j];

                                               }

                               }

               }

       cout << sum;

       

}

Задание №6

Дан целочисленный массив S[26]. Сформировать матрицу А, первая строка которой будет содержать элементы массива с четными номерами, а вторая - с нечетными.



#include "stdafx.h"
#include "stdlib.h"
void formmas(int s[26])
{int i=0,j=0,x,h;
int G[13][13];
for(int k=0; k<26;k+=2)
{
i++;
G[0][i]=s[k];
}
for (int k=1;k<26;k+=2)
{
j++;
G[1][j]=s[k];
}
for (int x=0;x<13;x++)
for(int h=0;h<2;h++);
{
printf("%d\n\n",G[x][h]);
}
}
void funct6()
{ int mas[26];
int i,k;
printf("ZADACHAAAAA 5");
for (i=0;i<26;i++)
mas[i]=rand()%50;
formmas(mas);
getchar();
getchar();
getchar();
}


 

А также другие работы, которые могут Вас заинтересовать

21984. Венгрия, Валашские, Молдавские княжества в IX-XV вв. 71 KB
  замковые люди зависимые крестьяне. Особую категорию крестьян XIIXIII вв. магнатам принадлежало 33 населения жупов 34 крестьянских хозяйств; средним и мелким феодалам 39 поселений; церковным феодалам 121 ; королю 15 . Происходит унификация категорий зависимых крестьян исчезают либертины сервы замковые люди и удворники все они теперь частновладельческие крестьяне.
21985. Византийская культура 39.5 KB
  Но для культуры Византии характерно единство языковое конфессиональное. В Византии были популярны и исторические сочинения. Отличительной чертой системы образования в ранней Византии было сохранение в значительных масштабах античных традиций. В ранней Византии происходило накопление эмпирических знаний по географии навигационному делу ботанике зоологии картографии.
21986. Византия в IV-XI вв. 123.5 KB
  Географическое положение Византии делало империю как бы связующим звеном между Востоком и Западом. В состав Византии в этот период входила вся восточная половина Римской империи. Территория Византии по данным источников в это время превышала 750 тыс. Латинское население западных областей Византии было немногочисленно.
21987. Византия в XII-XV вв. 78 KB
  административный и судебный иммунитет в большинстве владений у родственников императоров был полный налоговый иммунитет имели они и свой штат оставался в Византии ограниченным не только в XII в. Пожалование земли и крестьян в пронию до известной степени заменило стратиотское землевладение крестьянского типа которое полностью не исчезло а сохранялось до конца существования Византии. В Византии имел гораздо меньшее развитие чем на Западе процесс субинфеодации. Феодальные институты Византии прония арифмос харистикий экскуссия ...
21988. Германия в XI-XV вв. 151.5 KB
  Полностью романской была Лотарингия присоединенная к Германии уже в конце IX в. Новые императоры вернулись от вселенской политики к германским проблема в Италию ходили походами только для коронации в Германии опирались на епископов и на слой министериалов и боролись с герцогами. Но после клюнийской реформы духовенство в Германии усилилось а в XI в. Генрих IV стал править самостоятельно в качестве короля Германии ему прежде всего пришлось столкнуться с фактом возросшей независимости светских и духовных князей.
21989. Германия в XVI-первой половине XVII вв. 182.5 KB
  Международная экономическая роль Германии выражалась в том что она занимала первое место в мире по добыче серебра 80 шло из Германии в Европу. Альбрехт не был в состоянии уплатить Фуггерам и добился от папы Льва X разрешения провести продажу индульгенций в Саксонии и других местах Германии за что обещал уплатить курии 10. На востоке Германии большое значение приобретают ярмарки в Лейпциге с конца XV в. Процесс созревания некоторых предпосылок генезиса капитализма был приостановлен в Западной Германии и Австрии феодальной реакцией...
21990. Гуманизм Италии XIV-XV вв. 147 KB
  Гуманисты были творцами новой системы знания в центре которого стояла проблема человека его земного предназначения термин humanista полагает П. Мишле выдвинул принципиально отличное от средневекового решения проблемы отношения человека к миру. Бурдаха где он писал что новое понимание искусства литературы науки новая концепция человека не вступали в противоречие в христианской религией ибо были предопределены ее пышным цветением в XIII в. Наиболее значительной для Тоффанина была идея божественности человека.
21991. Западная Европа в конце XI в. 30 KB
  Отношения между представителями класса феодалов в государствах Западной Европы строились по принципу т. На ее вершине находился император король который считался верховным сеньором всех феодалов их сюзереном главой феодальной иерархии. Среди церковных феодалов тоже существовала иерархия по рангу занимаемой ими должности: папа римский кардиналы архиепископы епископы аббаты приоры кюре викарий. Многие из них были вассалами светских феодалов по своим земельным владениям и наоборот.
21992. Западные славяне 61.5 KB
  начинается серия войн с Византией велись они с переменным успехом но в целом удачно для Болгарии. престиж Болгарии как международной державы был высок. Послов Болгарии за императорским столом сажали выше чем послов германского императора Оттона I. в Болгарии появилось богомильское движение дуализм.