Програма 6

#include <cstdio>

#include<cstdlib> // тут функції перетворення рядків цифр в числа

#include<iostream>

using namespacestd;

/****************************************************************

*

* Призначення: Демонстрація функцій 'atof' та 'gets' на прикладі

* введення, перетворення та множення двох чисел.

* Дата: 16/05/2010

*

****************************************************************/

 

intmain(){

charstr1[80], str2[80]; /* пара змінних для введення 2 чисел */

doubleresult;/* а це для результату */

puts ("This program will multiply two floating point numbers.");

/* вводимо обидва числа */

puts ("Please enter the first number.");

gets(str1);

puts ("And the second.");

gets(str2);

 

/* перетворюємо рядкові значення в числові і перемножуємо */

result = atof(str1) * atof(str2);

/* результат -> в рядок з форматом: всього 8 позицій (2 після коми) */

printf("Answer is%8.2f\n",result);

/* затримаємо виконання */

getchar();

return 0;

}

Завдання:Поекспериментуйте з програмою, перевірте, що буде, коли ви введете замість цифр букви.

Програма 7.

 

#include <string>

#include <cstdio>

#include<cstdlib> // тут функції перетворення рядків цифр в числа

 

int main(){

// сюда занесемо послідовність символів

char str[255];

 

// символів - не більше 256

const int size_counter = 256;

 

// масив-лічильник символів заповнимо нулями

int counter[size_counter] = {0};

int i;

 

puts("Enter a string:");

gets(str);

 

// переглядаємо str поки не наткнемось на нуль-символ

for(i = 0; str[i]; i++)

 

// str[i] - це код символа в рядку на i-му місці

// збільшуємо на 1 вміст лічильника що відповідає символу

counter[str[i]]++;

 

/* переглядаємо лічильник */

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

 

// і виводимо вміст ненульових байтів

if(counter[i])

 

// %3c - виведення символа, %d - виведення числа

printf("%3c - %d\n", i,counter[i]);

 

gets(str);

return 0;

}

 

Модифікуйте програму так, щоб вона сприймала тільки коди цифрових клавіш

Рекомендації:

· Створіть підпрограму, що сприймає рядки символів а повертає числа.

· Вводьте числа посимвольно (getchar()) в неперервному циклі.

· Для контролю натиснутої клавіші використайте функцію isdigit(sym).

· Накопичуйте числові символи поки не буде натиснуто клавішу пробіл

 

Програма 8.

Робота з файлами

 

// Ввод символов с клавиатуры и занесение в поток
#include <cstdio>


int main(){
FILE *f; // это указатель на буфер обмена
char sym; // сюда заносим символ с клавиатуры

 

// запрашиваем адрес файлового буфера и связываем его с "tenlines.txt"
f = fopen("tenlines.txt","wt");


do {

 

// получение символа с клавиатуры
sym = getchar();

 

// занесение символа в файл
putc(sym,f);


} while (sym != '\n'); // пока не нажмете ENTER ('\n')


fclose(f);
return 0;
}

 

Примечание: во всех примерах с файлами проверяйте содержимое файла tenlines.txt