ОТ ЗА РЕШЕНИЕ ЗАДАЧИ C++ Дан файл. Посчитать количество непробельных символов в нем.
Формат входных данных
На входе находится файл с текстом.
В одной строке может быть до 500 символов.
Формат выходных данных
Необходимо вывести одно целое число - количество непробельных символов.
Примечания
Используйте функцию isspace для проверка на непробельность :)
входные данные
Hello, World!
Smth wrng with
ths tst
выходные данные
12
18
✔ мозаику из очень мелких элементов — пикселей;
сочетание примитивов (это про векторное изображение);
палитру цветов.
Растровое графическое изображение формируется из:
линий
✔ пикселей
графических примитивов (это про векторное изображение)
В векторной графике изображения строятся из:
пикселей (это про растровую графику);
✔ примитивов;
рисунков.
Эффективно представляет изображения фотографического качества:
векторная графика;
✔ растровая графика.
Относительно небольшой объём памяти занимают:
✔ векторные рисунки; (это как правило верно. Но если пытаться делать изображения фотографического качества в векторной графике, файлы будут получаться огромными)
растровые изображения.
Могут быть легко масштабированы без потери качества:
✔ векторные рисунки;
растровые изображения.
Растровое графическое изображение получается:
✔ в процессе сканирования (в остальных случаях - векторная)
при работе с системами компьютерного черчения
при создании рисунка в MS Word
Какой тип графического изображения вы будете использовать при редактировании цифровой фотографии?
✔ растровое изображение
векторное изображение
Что можно отнести к достоинствам растровой графики по сравнению с векторной?
Малый объём графических файлов. (это про векторную)
✔ Фотографическое качество изображения.
Возможность просмотра изображения на экране графического дисплея. (это верно для любой компьютерной графики)
Возможность масштабирования изображения без изменения его качества. (это про векторную)
Файлы, с какой графикой имеют наибольший размер?
✔ Растровой.
Векторной.
Трёхмерной. (обычно простенькая трехмерная графика составляется из примитивов и имеет небольшой размер. Но опять-таки, если ставить целью добиться максимальной естественности изображения, то здесь будет максимальный размер)
Изображения, какой графики состоят из массива точек (пикселей)?
✔ Растровой.
Векторной
Трёхмерной
Для хранения растрового изображения размером 64 на 64 пикселя отвели 512 байтов памяти. Каково максимально возможное число цветов в палитре изображения?
Всего пикселей 64 * 64 = 2^12, на них отводится 512 байт = 2^9 байт = 2^12 бит. Тогда на 1 пиксель отводится всего 1 бит, и в палитре не больше 2^1 = 2 цветов.
В процессе преобразования растрового графического файла количество цветов уменьшилось с 512 до 8. Во сколько раз уменьшился информационный объем файла?
512 = 2^9, 8 = 2^3. В первом случае на 1 пиксель отводится 9 бит, во втором - 3 бита. Размер уменьшился в 3 раза.
#include <iostream>
#include <iomanip>
int main()
{
using namespace std;
//исходная последовательность
const int N = 8;
double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };
//вывод на экран исходной последовательности
for (int i = 0; i < N; ++i)
cout << Arr[i] << " ";
cout << endl;
//подсчитаем количества отрицательных и неотрицательных элементов
int kpos = 0;
int kneg = 0;
for (int i = 0; i < N; ++i)
if (Arr[i] < 0)
++kneg;
else
++kpos;
//создадим массивы отрицательных и неотрицательных элементов
double * ArrNeg = new double[kneg];
double * ArrPos = new double[kpos];
int kn = 0, kp = 0;
for (int i = 0; i < N; i++)
if (Arr[i] < 0)
ArrNeg[kn++] = Arr[i];
else
ArrPos[kp++] = Arr[i];
cout << "Enter a, b, c or d: ";
char ch;
cin >> ch;
if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd')
{
switch (ch)
{
//пункт а)
case 'a':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[i];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[i];
break;
//пункт б)
case 'b':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[--kn];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[i];
break;
//пункт в)
case 'c':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[i];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[--kp];
break;
//пункт г)
case 'd':
for (int i = 0; i < kneg; ++i)
Arr[i] = ArrNeg[--kn];
for (int i = 0; i < kpos; ++i)
Arr[i + kneg] = ArrPos[--kp];
break;
}
}
else
cout << "You entered wrong symbol\n";
for (int i = 0; i < N; ++i)
cout << Arr[i] << " ";
cout << endl;
delete[] ArrNeg;
delete[] ArrPos;
return 0;
}