скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыОтчет по практике: Програмний продукт Pacific З Compiler

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1, OnButton1)

ON_BN_CLICKED(IDC_BUTTON2, OnButton2)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////////

// CProga27_01Dlg message handlers

BOOL CProga27_01Dlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE);// Set big icon

SetIcon(m_hIcon, FALSE);// Set small icon

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

}

void CProga27_01Dlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog::OnSysCommand(nID, lParam);

}

}

// If you add a minimize button to your dialog, you will need the code below

// to draw the icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

void CProga27_01Dlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

// The system calls this to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CProga27_01Dlg::OnQueryDragIcon()

{

return (HCURSOR) m_hIcon;

}

void CProga27_01Dlg::OnButton1()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);

int N;

char str_2[50],str_8[50],str_16[50];

N=m_Vvod_10;

itoa(N,str_2,2);

m_Vvod_2=str_2;

itoa(N,str_8,8);

m_Vvod_8=str_8;

itoa(N,str_16,16);

m_Vvod_16=str_16;

UpdateData(FALSE);

}

void CProga27_01Dlg::OnButton2()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);

char o=0;

m_Vvod_10=0;

m_Vvod_2=o;

m_Vvod_8=o;

m_Vvod_16=o;

UpdateData(FALSE);

}

Заголовний модуль Proga27_01.h

// Proga27_01.h : main header file for the PROGA27_01 application

#if !defined(AFX_PROGA27_01_H__56B7EF51_81AC_4F93_9FF3_5017FF89C8DA__INCLUDED_)

#define AFX_PROGA27_01_H__56B7EF51_81AC_4F93_9FF3_5017FF89C8DA__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#ifndef __AFXWIN_H__

#error include 'stdafx.h' before including this file for PCH

#endif

#include "resource.h"// main symbols

//////////////////////////////////////////////////////////////////////

// CProga27_01App:

// See Proga27_01.cpp for the implementation of this class

class CProga27_01App : public CWinApp

{

public:

CProga27_01App();

// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CProga27_01App)

public:

virtual BOOL InitInstance();

//}}AFX_VIRTUAL

// Implementation

//{{AFX_MSG(CProga27_01App)

// NOTE - the ClassWizard will add and remove member functions here.

// DO NOT EDIT what you see in these blocks of generated code !

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

//////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_PROGA27_01_H__56B7EF51_81AC_4F93_9FF3_5017FF89C8DA__INCLUDED_)

Заголовний модуль Proga27_01.cpp

// Proga27_01.cpp : Defines the class behaviors for the application.

#include "stdafx.h"

#include "Proga27_01.h"

#include "Proga27_01Dlg.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

//////////////////////////////////////////////////////////////////////

// CProga27_01App

BEGIN_MESSAGE_MAP(CProga27_01App, CWinApp)

//{{AFX_MSG_MAP(CProga27_01App)

// NOTE - the ClassWizard will add and remove mapping macros here.

// DO NOT EDIT what you see in these blocks of generated code!

//}}AFX_MSG

ON_COMMAND(ID_HELP, CWinApp::OnHelp)

END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////////

// CProga27_01App construction

CProga27_01App::CProga27_01App()

{

// TODO: add construction code here,

// Place all significant initialization in InitInstance

}

//////////////////////////////////////////////////////////////////////

// The one and only CProga27_01App object

CProga27_01App theApp;

//////////////////////////////////////////////////////////////////////

// CProga27_01App initialization

BOOL CProga27_01App::InitInstance()

{

AfxEnableControlContainer();

// Standard initialization

// If you are not using these features and wish to reduce the size

// of your final executable, you should remove from the following

// the specific initialization routines you do not need.

#ifdef _AFXDLL

Enable3dControls();// Call this when using MFC in a shared DLL

#else

Enable3dControlsStatic();// Call this when linking to MFC statically

#endif

CProga27_01Dlg dlg;

m_pMainWnd = &dlg;

int nResponse = dlg.DoModal();

if (nResponse == IDOK)

{

// TODO: Place code here to handle when the dialog is

// dismissed with OK

}

else if (nResponse == IDCANCEL)

{

// TODO: Place code here to handle when the dialog is

// dismissed with Cancel

}

// Since the dialog has been closed, return FALSE so that we exit the

// application, rather than start the application's message pump.

return FALSE;

}


Itoa(N,str_2,2)

 
Блок-схема: альтернативный процесс: Кінець


Рисунок 2.7 Блок-схема алгоритму до програми Proga27.срр

2.28 Знаходження раціональної кількості предметів

Програма Proga28.срр призначена для знаходження числа коробок, в’язок та пар шкарпеток, які бажає купити клієнт, щоб купівля обійшлася дешевше, якщо пара шкарпеток коштує 105р., в’язка (12 пар) – 1025р., а коробка (12 в’язок) – 11400р.

Вхідні дані: кількість селищ k (тип int)

Вихідні дані: номер селища і (тип int)

Блок-схема до програми Proga28.срр представлена на рисунку 2.8

#include<iostream.h> //Підключаємо бібліотеки iostream.h,

#include<math.h> //та math.h

//Оголошуємо константи:

#define PARA 105 // 1 пара - 105р.

#define SV 1025 // в’язка (12 пар) = 1025р.

#define KOR 11400 // коробка (12 в’язок = 144 пары) = 11400р.

void main() //Оголошуємо головну функцію main()

{ //Оголошуємо змінні:

int N,n1,n2,n3,p=1,s=12,k=144,a,b,c,a1,b1,c1,W;

cout<<"Скільки пар ви бажаєте купити? "; //Даємо запит

cin>>N; //Вводимо кількість пар шкарпеток

if(N==1) //Умова: якщо кількість =1, то виводимо повідомлення

{ cout<<"За однією парою не варто ходити до крамниці"<<"\n";

goto p; //Переходимо до мітки р:

}

a=N/k; //

a1=N%k; //

//

b=a1/s; //

b1=a1%s; //Робимо операції над змінними

//

c=b1/p; //

c1=b%p; //

n1=a; // К-ть коробок

n2=b; // К-ть в’язок

n3=c; // К-ть пар

if(n3>=6) //Умова: якщо кількість пар >6,

{ //виводимо повідомлення на екран

cout<<"Вам вигідніше купити "<<n1<<" коробок та "<<(n2+1)<<" в’язок";

cout<<"Вам це буде коштувати "<<(n1*11400+(n2+1)*1025)<<"p"<<"\n";

}

else //В іншому разі:

{

cout<<"Вам вигідніше купити "<<n1<<" коробок та "<<n2<<" в’язок";

cout<<"Вам це буде коштувати "<<(n1*11400+n2*1025)<<"p"<<"\n";

}

p:; //Мітка р:

cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит

cin>>W; //Вводимо зайву перемінну W для затримки екрану

} //Кінець функції main()


Блок-схема: альтернативный процесс: Початок


                                 Ні                            Так

a=N/k;

a1=N%k;

b=a1/s;

b1=a1%s;

c=b1/p;

c1=b%p;

n1=a;

n2=b;

n3=c;

 
Блок-схема: данные: Cout&lt;&lt;”105р”

Goto p:;

 


Блок-схема: решение: n3&gt;=6                                  Ні                            Так

p:;

 


Рисунок 2.8 Блок-схема алгоритму до програми Proga28.срр

2.29 Знаходження четвірок простих чисел

Програма Proga29.срр призначена для знаходження четвірок простих чисел не перевищуючих N, якщо задане N>19

Вхідні дані: Число N (тип int)

Вихідні дані: четвірки простих чисел

#include<iostream.h> //Підключаємо бібліотеки iostream.h,

#include<math.h> //та math.h

void main() //Оголошуємо головну функцію main()

{

int N,i,kol; //Оголошуємо перемінні N,I,kol цілого типу

char str1[10],str2[10],str3[10],str4[10];//та символьні матриці

cout<<"Введіть число >19 "; //Даємо запит

cin>>N; //Вводимо число >19

kol=0; //змінній kol присвоюємо початкове значення 0

for(;N>0;) //Задаємо цикл

{

N=(N-N%10)/10; //Знаходимо цифри числа а

kol++; //Збільшуємо лічильник kol на одиницю

}

if (kol==2) //Умова: якщо кількість дорівнює 2, виводимо:

{

cout<<"2 3 5 7"<<"\n"<<"11 13 17 19"<<"\n";

goto p; //Перехід до мітки р:

}

else //інакше – виводимо:

{

cout<<"2 3 5 7"<<"\n"<<"11 13 17 19"<<"\n";

str1[0]=1; //

str2[0]=1; //Першим елементам матриць присвоюємо значення 1

str3[0]=1; //

str4[0]=1; //

str1[kol-1]=1; //

str2[kol-1]=3; //

str3[kol-1]=7; //Останнім елементам матриць присвоюємо відповідні

str4[kol-1]=9; // значення

for (i=1;i<=kol-2;i++) //Задаємо цикл

{

str1[i]=0; //

str2[i]=0; //Між першим та останнім елементами матриць всі елементи

str3[i]=0; //будуть дорівнювати 0

str4[i]=0; //

}

for (i=0;i<=3;i++) //Задаємо цикл

cout<<str1[i]; //Виводимо елементи матриці str1

cout<<" "; //Ставимо пробіл

for (i=0;i<=3;i++) //Задаємо цикл

cout<<str2[i]; //Виводимо елементи матриці str2

cout<<" "; //Ставимо пробіл

for (i=0;i<=3;i++) //Задаємо цикл

cout<<str3[i]; //Виводимо елементи матриці str3

cout<<" "; //Ставимо пробіл

for (i=0;i<=3;i++) //Задаємо цикл

cout<<str4[i]; //Виводимо елементи матриці str4

cout<<" "; //Ставимо пробіл

}

p:; //Мітка р:

cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит

cin>>W; //Вводимо зайву перемінну W для затримки екрану

} //Кінець функції main()

2.30 Обчислення числа Фібоначі

Програма Proga30.срр призначена для обчислення числа Фібоначі з номером N

Вхідні дані: число n (тип int)

Вихідні дані: масиви чисел Фібоначі (тип double)

Блок-схема до програми Proga30.срр представлена на рисунку 2.9

#include<iostream.h> //Підключаємо бібліотеку iostream.h

void main() //Оголошуємо головну функцію main()

{

int i,n,W; //Оголошуємо перемінні I,n,W цілого типу

double a[50]; //та масив а типу (double)

cout<<"Числа Фібоначі:"<<"\n"; //Виводимо повідомлення

cout<<"Введіть n до 30"<<"\n "<<"k="; //Даємо запит

cin>>n; //Вводимо число n

a[1]=1; //Першому та другому елементам матриці а

a[2]=1; // присвоюємо значення 1

for(i=3;i<=n;i++) //Задаємо цикл

a[i]=a[i-1]+a[i-2]; // і-ий елемент матриці а дорівнює:

for(i=1;i<=n;i++) //Задаємо цикл

cout<<a[i]<<" "<<'\n'; //Виводимо елементи матриці а

cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит

cin>>W; //Вводимо зайву перемінну W для затримки екрану

} //Кінець функції main()

Блок-схема: данные: Cin&gt;&gt;n;
Скругленный прямоугольник: Кінець


Рисунок 2.9 Блок-схема алгоритму до програми Proga30.срр

2.31 Видалення з рядку певних символів

Програма Proga1_1.срр призначена для видалення з рядку S1 усіх символів, які зустрічаються в рядку S2

Вхідні дані: рядок str1 (тип char)

рядок str2 (тип char)

Вихідні дані: Змінений рядок str1 (тип char)

#include <iostream.h> //Підключаємо бібліотеки iostream.h,

#include <string.h> //та math.h

char func(char str3[10],char str4[10])//Оголошуємо функцію, яка по

{ //заданим рядкам S1 та S2,

for(int i=0;str3[i]+='\0';i++) //видаляє з рядка S1 всі символи

for(int j=0;str4[j]+='\0';j++) //які зустрічаються в рядку S2

{ //

if(str3[i]==str4[j]) //

cout<<str4[j+1]; //

else cout<<str3[i]; //

} //

return 0; //

} //

void main() //Оголошуємо головну функцію main()

{

int W; //Оголошуємо перемінну W цілого типа,

char str1[10]; //матриці str1 та str2 символьного типу

char str2[10];

cout<<"Введіть рядок 1: "; //Даємо запит

cin>>str1; //Вводимо перший рядок

cout<<"Введіть рядок 2: "; //Даємо запит

cin>>str2; //Вводимо другий рядок

func(str1,str2); //Викликаємо функцію func

cout<<"\n"; //Переводимо курсор на новий рядок

cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит

cin>>W; //Вводимо зайву перемінну W для затримки екрану

} //Кінець функції main()

2.32 Сума двох рядків

Програма Proga2_2.срр призначена для формування рядка-суми двох рядків, якщо подані два символьних рядка, які складаються тільки з цифр.

Вхідні дані: рядок STRING1 (тип char)

рядок STRING2 (тип char)

Вихідні дані: рядок STRING3 (тип char)

#include<iostream.h> //Підключаємо бібліотеки iostream.h,

#include<stdlib.h> //та math.h

void main() //Оголошуємо головну функцію main()

{

char STRING1[50]={0};//Оголошуємо символьну матрицю STRING1,

char STRING2[50]={0};//матрицю STRING2,

int i,N1,N2; //та змінні I,N1,N2

cout<<"Скільки елементі вбуде в вашому рядку 1? "; //Вводимо запит

cin>>N1; //Вводимо кількість елементів першого рядка

cout<<"Введіть рядок 1: "; //Даємо запит

for(i=0;i<N1;i++) //Задаємо цикл

cin>>STRING1[i]; //Вводимо цифри першого рядка

cout<<" Скільки елементі вбуде в вашому рядку 2? "; //Вводимо запит

cin>>N2; //Вводимо кількість елементів другого рядка

cout<<" Введіть рядок 2: ";//Даємо запит

for(i=0;i<N2;i++) //Задаємо цикл

cin>>STRING2[i]; //Вводимо цифри другого рядка

double long l1=atol(STRING1); //Змінній l1 присвоюємо функцію atol

//яка обертає рядок STRING1 на одне число типу double long

double long l2=atol(STRING2); //Змінній l2 присвоюємо функцію atol

double long l3=l1+l2; //Змінній l3 присвоюємо суму l1 та l2

cout<<"l3="<<l3<<"\n";//Виводимо відповідь

cout<<"\n"<<"Для виходу введіть EXIT:"<<"\n"; //Даємо запит

cin>>W; //Вводимо зайву перемінну W для затримки екрану

} //Кінець функції main()

2.33 Редагування тексту

Програма Proga33.срр призначена для редагування тексту так, щоб між словами був рівно один пробіл, а між реченнями рівно два

Вхідні дані: рядок символів S (тип char)

Вихідні дані: відредагований рядок S (тип Char)

Блок-схема до програми Proga33.срр представлена на рисунку 2.10

#include<conio.h> //Підключаємо бібліотеки conio.h

#include<stdio.h> //та stdio.h

void main() //оголошуємо головну функцію main()

{

char S[80],i; //оголошуємо символьний масив з 80 елементів та

// символьну перемінну i

printf("Введіть ваш рядок. В кінці поставте @:\n"); //Вводимо рядок,

gets(S); //який закінчується на @

i=0; //Задаємо початкове значення параметра i

while((S[i]!='@'))

{

if (S[i]=='.') //Задаємо умову знаходження крапки в рядку

{ //якщо крапка знайдена,

printf(". "); //виводимо крапу з двома пробілами

}

else printf("%c",S[i]); //інакше виводимо елемент на своєму місці

i+=1; //Збільшуємо лічильник на одиницю

}

printf("\n"); //Переводимо курсор на новий рядок

getch(); //Затримуємо екран

} //Кінець функції main()

Блок-схема: данные: Gets (s);


 Ні Так

Параллелограмм: printf(“.  ”);
Блок-схема: альтернативный процесс: КІнець


Рисунок 2.10 Блок-схема алгоритму до програми Proga33.срр

2.34 Копіювання одного рядка в інший

Програма Proga4_4.срр призначена копіювання одного тексту в інший так, щоб літери “новий рядок” та “табуляція” перетворювалися у видимі послідовності літер \n та \t

Вхідні дані: рядок символів Str1 (тип char)

рядок символів Str2 (тип char)

Вихідні дані: новий рядок str3 (тип Char)

#include<conio.h> //Підключаємо бібліотеки conio.h,

#include<stdio.h> //stdio.h

#include<string.h> //та string.h

char func(char str3[180],char str4[180]) //Оголошуємо функцію func,

{ //яка по заданим двом рядкам

int i; char str5[180]; //копіює другий рядок в кінець

//першого та перетворює літери

strncat(str3,str4,80); //”новий рядок” та “табуляція”

printf("\n"); //у видимі послідовності літер

//\n та \t

i=0;

while(str3[i]!=EOF)

{

if (str3[i]=='\n')

printf("\n");

else if (str3[i]=='\t')

printf("\t");

else printf("%c",str3[i]);

i+=1;

}

return 0;

}

void main() //Оголошуємо головну функцію main()

{

char str1[180],str2[180] //Оголошуємо дві символьних матриці

printf("Введіть ваш перший рядок:\n"); //Даємо запит

gets(str1); //Вводимо перший рядок символів

printf("Введіть ваш другий рядок:\n"); //Даємо запит

gets(str2); //Вводимо другий рядок символів

func(str1,str2); //Викликаємо функцію func

printf("\n"); //Переводимо курсор на новий рядок

getch(); //Затримуємо екран

} //Кінець функції main()


Перелік посилань

1.  Глушаков С.В.,Коваль А.В.,Смирнов С.В. Язык программирования С++. – Харьков: «Фолио», Ростов-на-Дону: «Феникс», 2001.

2.  Керниган Б. Ричи Д. Язык программирования Си – М. Финансы и статистика, 1992. – 272 с.

3.  Хэфилд Ричард, Кирби Лоуренс и др. Искусство программирования на Си. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программистов «ДиаСофт». 2001. – 736 с.


Страницы: 1, 2, 3, 4, 5, 6


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.