Вещественные типы данных языка С.




 

К вещественным типам данных языка С относятся:

 

Вещественный с одинарной точностью float – определяет численные значения с дробной частью обычной точности представления.

Вещественный с двойной точностью double longdouble – определяет численные значения с дробной частью высокой точности представления.

Long – длинный размер типа в байтах, используется для увеличения диапазона возможных значений.

Тип данных Размер памяти, бит Диапазон значений

 

float (вещественное) 32 от 3.4E–38 до 3.4E38

 

double (двойное вещественное) 64 от 1.7E–308 до 1.7E308

 

long double (длинное вещественное) 80 от 3.4E–4932 до 3.4E4932

 

 

Пример объявления переменных вещественного типа:

 

float f = 1,5;

long double a = 100,005698;

 


 

4. Составить блок-схему алгоритма и написать текст программы на языке программирования С++ решения циклической задачи по вычислению значения функции на заданном интервале переменной аргумента.

Вариант Выражение расчёта значения функции
 

 

Данные:

 

Решение:

Начало
Ввод Mn
Ввод Mk
Ввод Mh
M=Mn
Цикл ресчёта
H=F(M)
Вывод H, M
M=M+Mh
M>Mk
Конец

 


#include <iostream.h>

#include <conio.h>

#include <math.h>

int main (int argc, char* argv[])

{float Mn; float Mk;

float Mh; float H, M;

cout << "\nMn="; cin >>Mn;

cout << "\nMk="; cin >>Mk;

cout << "\nMh="; cin >>Mh;

M=Mn;

do {H = -3.33 * pow(M,2) - 8.54 * M + 9.61;

cout << "\nM= " << M << " H= " << H;

M=M+Mh;

} while (M<=Mk);

getch();

return 0; }

Задание 5.

Составить блок-схему алгоритма и написать текст программы на языке программирования С для считывания из типизированного файла заданного типа long int из 25 элементов, с последующей сортировкой элементов массива по возрастанию. Результаты сортировки вывести в текстовый файл имя которого задаётся с клавиатуры.

 

Вариант Размер и тип элементов массива Имя файла результата
  25, long int Ansver.asc

 

 

Решение:

Начало

 

Ввод Name
Открытие файла F1
i от 0 до Size
Чтение M[i]
Закрытие файла F1
i от 1 до Size
j от 1 до Size-1
M[j]<M[j-1]
Min=M[j] M[j]=M[j-1] M[j-1]=Min
Открытие файла F2
i от 0 до Size
Запись M[i]
Закрытие файла F2
Конец

 

 


#include <conio.h>

#include <stdio.h>

#define SIZE 25

long int M[SIZE];

char Name [80];

FILE *F1;

FILE *F2;

int i,j;

short int Min;

int main (int arge,char* argv[])

{ printf("nViberete imya fayla:");

scanf("%s",Name);

F1=fopen(Name,"rb");

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

fscanf(F1,"%hd",&M[i]);

fclose(F1);

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

{for (j=1; j<SIZE; j++)

{if(M[j]<M[j-1])

{Min=M[j];

M[j]=M[j-1];

M[j-1]=Min;

}

}

}

F2=fopen("Ansver.asc","wt");

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

fprintf(F2,"\n%hd",M[i]);

fclose(F2);

getch();

return 0;

}

 


 

Задание 6.

Составить блок-схему головного алгоритма и написать текст программы на языке программирования С++ для вычисления значений матрицы-результата путем преобразования значений исходной матрицы согласно заданного выражения. Текст программы следует оформить в виде трёх отдельных подпрограмм-функций. Тип элементов матриц: вещественный (float).

Вариант Расчётная формула Размер матрицы
  4х3

 

Данные:

 

Решение:

 

Начало

Import (M1)
Count (M1,M2)
Outdata (M2)
Конец

 

 


#include <iostream.h>

#include <math.h>

#include <vcl.h>

#include <conio.h>

#include <iomanip.h>

#pragma hdrstop

//---------------------------------------------------------------------------

int entry(float M[3][4]);

int count(float M1[3][4],float M2[3][4]);

int outdata(float M[3][4]);

#pragma argsused

int main(int argc, char* argv[])

{ float A[3][4], B[3][4];

entry(A);

count(A,B);

outdata(B);

getch();

return 0;

}//----------------------------------------------------

int entry(float M[3][4])

{for(int i=0; i<3; i++)

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

{ cout << "\nM[" << i << "." << j << "]=";

cin >> M[i][j]; }

return 0;

} //---------------------------------------------

int count(float M1[3][4], float M2[3][4])

{for(int i=0; i<3; i++)

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

M2[i][j]=(pow(M1[i][j],2))-(pow(M1[i][i],2)*i);

return 0;

} //---------------------------------------------

int outdata(float M[3][4])

{for(int i=0; i<3; i++)

{ for(int j=0; j<4; j++)

cout << setw(8) << M[i][j] << " ";

cout << endl;

}

return 0;

}


 

Задание 7.

Написать программу для ввода данных с клавиатуры и последующей записи в текстовый файл устройств ПК. Написать модуль, содержащий часть дерева заданного класса, и вызывающую программу. Модуль должен содержать описание базового класса периферийного устройства, от которого наследованием создаются два класса-потомка.

Вариант Класс-предка Первый класс-потомок Второй класс-потомок
  TChip TCPU TGPU

описание структуры классов:

Имя класса Назначение Тип и имя поля Описание поля класса
TChip Микросхема char Name[80] Наименование устройства
int Pins Число контактов корпуса
int Tecnprocess Технологический процесс в нм
int TDP Рассеиваемая мощность в Вт
float NVT Число миллионов транзисторов
TCPU Центральный процессор Char Core[80] Наименование ядра
Float Hz Частота системной шины в ГГц
int NCore Число ядер
TGPU Графический процессор int NSP Число потоковых процессов
float NverVS Версия вершинных шейдеров
float NverPS Версия пиксельных шейдеров

Main.cpp

#pragma hdrstop

#pragma argsused

#include "MyClass.h"

#include <conio.h>

#include <iostream.h>

int main(int argc, char* argv[])

{ TCPU CPU;

TGPU GPU;

char Name[80];

cout << "\n Vvedite file name: ";

cin >> Name;

cout << "\n CPU: ";

CPU.InitKBDCPU();

CPU.Demo();

CPU.SaveFileCPU(Name);

cout << "\n\n GPU:";

GPU.InitKBDGPU();

GPU.Demo();

GPU.SaveFileGPU(Name);

cout << "\n End programm. Press any key...";

getch();

return 0; }

 

My class.cpp

#pragma hdrstop

#include "MyClass.h" // Свой класс

#include <fstream.h> // работа с файловыми потоками

#include <iostream.h> // работа с консолью

void TChip::InitKBD() // Ввод данных с клавиатуры 1

{ cout << "\n Naimenovanie ustroystva: ";

cin >> Name;

cout << "\n Chislo kontaktov korpusa: ";

cin >> Pins;

cout << "\n Tehnologich process v nm: ";

cin >> Tecnprocess;

cout << "\n Rasseiv moqnost tepla v Wt: ";

cin >> TDP;

cout << "\n Chislo millionov transitorov: ";

cin >> NVT; }

void TChip::SaveFileM(char *name) // Сохранение полей в указанный файл

{ ofstream fout(name, ios_base::app);

if (!fout)

cout << "\n Error open file!!!";

else {

fout << "Naimenovanie ustroystva: " << Name << endl;

fout << "Chislo kontaktov korpusa: " << Pins << endl;

fout << "Tehnologich process v nm: " << Tecnprocess << endl;

fout << "Rasseiv moqnost tepla v Wt: " << TDP << endl;

fout << "Chislo millionov transitorov: " << NVT << endl;

fout.close(); } }

void TChip::Demo() // Вывод полей класса на экран

{ cout << "Naimenovanie ustroystva: " << Name << endl;

cout << "Chislo kontaktov korpusa: " << Pins << endl;

cout << "Tehnologich process v nm: " << Tecnprocess << endl;

cout << "Rasseiv moqnost tepla v Wt: " << TDP << endl;

cout << "Chislo millionov transitorov: " << NVT << endl; }

void TCPU::InitKBDCPU() // Ввод полей с клавиатуры

{ TChip::InitKBD(); // вызов функции предка

cout << "\n Naimenovanie yadra: ";

cin >> Core;

cout << "\n Chastota sistemnoy shiny v GGz: ";

cin >> Hz;

cout << "\n Chislo yader: ";

cin >> NCore; }

void TCPU::SaveFileCPU(char name[80]) // Сохранение полей в файл

{ TChip::SaveFileM(name); // вызов функции предка

ofstream fout(name, ios_base::app);

if (!fout)

cout << "\n Error open file!!! \a";

else { fout << "\n Naimenovanie yadra: " << Core << endl;

fout << "\n Chastota sistemnoy shiny v GGz: " << Hz << endl;

fout << "\n Chislo yader: " << NCore << endl << "\n";

fout.close(); } }

void TCPU::Demo() // Вывод полей класса на экран

{ TChip::Demo(); // Вызов виртуальной функции из предка

cout << "\n Naimenovanie yadra: " << Core;

cout << "\n Chastota sistemnoy shiny v GGz: " << Hz;

cout << "\n Chislo yader: " << NCore; }

void TGPU::InitKBDGPU() // Ввод полей с клавиатуры

{ TChip::InitKBD();

cout << "\n Chislo potokovih processov: ";

cin >> NSP;

cout << "\n Versiya vershinnyh sheyderov: ";

cin >> NVerVS;

cout << "\n: Versiya pikselnyh sheyderov";

cin >> NVerPS; }

void TGPU::SaveFileGPU(char name[80]) // Сохранение полей в файл

{ TChip::SaveFileM(name);

ofstream fout(name, ios_base::app);

if (!fout)

cout << "\n Error open file!!!";

else {fout << "\n Chislo potokovih processov: " << NSP << endl;

fout << " Versiya vershinnyh sheyderov: " << NVerVS << endl;

fout << " Versiya pikselnyh sheyderov: " << NVerPS << endl;

fout.close(); } }

void TGPU::Demo() // Вывод полей класса на экран

{ TChip::Demo(); // Вызов виртуальной функции из предка

cout << "\n Chislo potokovih processov: " << NSP;

cout << "\n Versiya vershinnyh sheyderov: " << NVerVS;

cout << "\n Versiya pikselnyh sheyderov: " << NVerPS; }

#pragma package(smart_init)

 

Me class.h

#ifndef MyClassH

#define MyClassH

class TChip // Микросхема

{ protected:

char Name[80]; // Наименование устройства

int Pins; // Число контактов корпуса

int Tecnprocess; // Тех процесс в нм

int TDP; // Рассеиваемая мощность в ВТ

float NVT; // Число миллионов транзисторов

public: // Открытая секция

void InitKBD(); // Ввод данных с клавиатуры

void SaveFileM(char name[80]); // Сохранение полей в указанный файл

virtual void Demo(); // Вывод полей класса на экран }

class TCPU: protected TChip // Центральный процессор

{ protected:

char Core[80]; // Наименование ядра

float Hz; // Частота системной шины в ГГц

int NCore; // Число ядер

public:

void InitKBDCPU(); // Ввод полей с клавиатуры

void SaveFileCPU(char name[80]); // Сохранение полей в указанный файл

void Demo(); // Вывод полей класса на экран };

class TGPU: protected TChip // Графический процессор

{ protected:

int NSP; // Число потоковых процессоров

float NVerVS; // Версия вершинных шейдеров

float NVerPS; // Версия пиксельных шейдеров

public:

void InitKBDGPU(); // Ввод полей с клавиатуры

void SaveFileGPU(char fname[80]); // Сохранение полей в указанный файл

void Demo(); // Вывод полей класса на экран };

#endif

 


 

Министерство образования Республики Беларусь Государственное учреждение высшего профессионального образования

«Белорусско-Российский Университет»

 

 

Кафедра «Автоматизированные электроприводы»

 

Контрольная работа №1

 

По дисциплине «Информатика»

 

гр. АЭПЗ – 121

 

Шабловский А.А.

 

№ зачетной книжки 122853

 

 

Могилев 2013



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: