Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить буквы в сим. массиве, С++ 
:(
    Опции темы
KyKy
Дата 15.2.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КуКу



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Код

//PR_HIPER_ALL.CPP
/*Программа вычисляющая S=a1-a2+a3-a4+a5-a6+... одномерном массиве A из N элементов (N<=9).
  Файлы проекта - HIPER2 : PR_HIPER_ALL.CPP - main()
                           PR_HIPER_FUNC.CPP - var()
                           PR_HIPER_OPEN.CPP - close()
                           PR_HIPER_CLOSE.CPP - open()
                           INDATA.TXT
                           OUTDATA.TXT
                           
Включаемые файлы :         PR_HIPER_HEADER.H
*/

//Подключение необходимых заголовочных
#include "pr_hiper_header.h"
#define N_ELEM 9 //Количество элементов массива

//Точка входа в программу.

int main(void)
{
//Исходные данные.

    
    int a[N_ELEM];             //Массив а из N_ELEM элементов.
    int i = 0;                 //Индекс элементов массива а.
    int s;                     //Cумма элементов массива а.
    int eof_flag;              //Вспомагательная переменная.

//Тех. Задание.
printf("Specificationsввв performance:In univariate array A from N elements N<=9\ncalculate: S=a1-a2+a3-a4+a5-a6+...\n");

//Указатели на файлы ввода/вывода.    
    FILE *indata,   
         *outdata;

//Открытие файла ввода для считывания данных.
    indata = open("indata.txt","rt");   
    
//Считывание массива данных.
do{
eof_flag=fscanf(indata,"%d", &a[i]);
i++;
}while ( (EOF != eof_flag ) && (i < N_ELEM) );
//Проверка
if(i > 8)
{
    printf("ERROR #3: Wrong input data.\n");
    exit(3);
}
//Закрытие файла ввода.
close("indata.txt",indata);    
                                         
//Подсчёт данных.
    var(i, a, s);

//Открытие файла вывода для записи данных.   
    outdata  = open("outdata.txt","wt");

//Запись данных в файл вывода и их вывод в случаи удачи.
    fprintf(outdata,"Specifications performance:\nIn univariate array A from N elements (N<=9) calculate: S=a1-a2+a3-a4+a5-a6+...\nResult calculations is %d.\n", s);
    
//Закрытие файла вывода.
    close("outdata.txt",outdata);
    
    return 0;
}


как проверить массив на то что в нем будет буква?Нужно просто реткод добавить ?

PM MAIL WWW ICQ   Вверх
MAKCim
Дата 15.2.2006, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 6
Всего: 207



Цитата

как проверить массив на то что в нем будет буква

буквы разные бывают: a-z, A-Z, а-я, А-Я
проверяется легко, смотришь диапозоны кодов символов в таблице символов и проверяешь с помощью if


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
cardinal
Дата 15.2.2006, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 15
Всего: 99



Цитата(KyKy @ 15.2.2006, 18:11 Найти цитируемый пост)
как проверить массив на то что в нем будет буква?

Проверить значение char, у цифр они в определенном диапазоне (см. справку или поиск).


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
KyKy
Дата 15.2.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КуКу



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



а где их посмотреть можно конкретнее???
Добавлено @ 22:47
или как-то проще просто ошибка что у меня стоит сейчас подходит для вех случаев а с меня просят чтобы при переполнении элементов была одна ошибка а при вставке например символа другая)
PM MAIL WWW ICQ   Вверх
Fixin
Дата 15.2.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Код
    
do{    
    eof_flag=fscanf(indata,"%c", &a[i]);
    if ((a[i] < 'a')||(a[i]>'z')) //тут только для маленикх букв латинского алфавита, но по аналогии
    {
        printf("ERROR #2: Wrong input data.\n");    
        fcloseall();
        exit(2);
    }
    i++;
}while ((!feof(indata) && (i < N_ELEM) );
if (i == N_ELEM) //больше быть не может
{
    printf("ERROR #3: Wrong input data.\n");    
    fcloseall();
    exit(3);
}

Правда я не совсем понял, что нужно.
PM MAIL ICQ   Вверх
KyKy
Дата 15.2.2006, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КуКу



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



это мне придётся все сиволы перебрать слишьком громоздко)
Добавлено @ 23:36
кстити нет ли какой функции которая проверяет что этот символ число а не буква по аналогии с is_integer() и is_digit() - подойдёт
Добавлено @ 23:40
только как ей пользоваться не понимаю???
PM MAIL WWW ICQ   Вверх
Fixin
Дата 16.2.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Цитата(KyKy @ 15.2.2006, 23:30 Найти цитируемый пост)
кстити нет ли какой функции которая проверяет что этот символ число а не буква по аналогии
isalpha() - из заголовочника ctype.h Русские буквы не понимает.

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0993 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.