КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Clr (str) - очистка строки
0 1 2 3 4 5 Многомерные массивы Наиболее часто используются двухмерные массивы, которые аналогичны таблицам, широко применяемых в финансовой сфере, экономике, производстве, государственных учреждениях и т.д. При обработке двухмерных массивов возможны два подхода, назовем их условно негативный и позитивный. Позитивный подход отличается тем, что в программе индексы элементов массива принимают только те значения, которые указывают на обрабатываемые элементы. При негативном подходе индексы принимают все возможные значения, а выбор элементов для обработки определяется набором условий.
Например, для матрицы 5x5 обработать элементы, лежащие выше главной диагонали и выше обратной диагонали.
Пример реализации: // Pozitiv and Negativ method for matrix # include<stdio.h> # include<conio.h> # include<iostream.h> # include<math.h> # include<dos.h> const n=5; int M2[n][n]={{ 2, 4, 7,-2, 5}, {-7, 1, 7, 9,-5}, {-2, 3, 6, 8, 1}, { 7, 1, 0,-4, 3}, { 0, 2, 1, 8, 9}}; int Sum_Pozitiv(int n) { int i,j, Sum=0; for (i=0; i<n/2; i++) for (j=i+1; j<n-i-1; j++) { Sum+=M2[i][j]; cout<<i<<" "<<j<<endl;} return Sum; } int Sum_Negativ(int n) { int i,j, Sum=0; for (i=0; i<n; i++) for (j=i+1; j<n; j++) if((i<j)&&(j<n-i-1)) Sum+=M2[i][j]; return Sum; } void main() { clrscr(); printf("Sum=%i\n",Sum_Pozitiv(n)); printf("Sum=%i\n",Sum_Negativ(n)); getch(); } 4.3. Сложный тип данных – строки. Строки предназначены для операций с символьными данными. В С++ строка представляет собой некоторый массив элементов типа char, в конце которого помещается символ ‘\0’ (нуль-терминатор). Такой массив называется ASCII – строкой. Инициализацию строки можно выполнить следующим образом: сhar str[6] = {'B','E','G','I','N','\0'}; сhar str[6] = "BEGIN"; сhar str[] = "BEGIN"; В памяти строка выглядит следующим образом:
str B E G I N \0
Для работы со строками можно использовать следующие библиотечные функции: gets (str) -ввод строки с клавиатуры; puts (str) -вывод строки на экран; printf("%s",str) – вывод строки на экран, используя шаблон 's'; Рассмотрим пример: Определить, имеется ли в строке хотя бы одна латинская буква, а также напечатать количество цифр в строке. Для решения задачи организуем цикл по элементам строки от первого элемента до нуль-терминатора ('\0'). // String Latin && Cifra #include <stdio.h> #include <conio.h> #include <iostream.h> #include <math.h> char st[36]=""; // -- String
// Является ли simbol латинской буквой? int Latin(char simbol) { if (((simbol>='A')&&(simbol<='Z'))|| ((simbol>='a')&&(simbol<='z'))) return 1; return 0; } // Является ли simbol цифрой? int Cifra(char simbol) { if ((simbol>='0')&&(simbol<='9')) return 1; return 0; } void main() //-- Главная функция --- { int i; int f=0; int k=0; cout<<"Input Line = \n"; gets(st); printf("%s\n",st); for (i=0; st[i]; i++) { if (Latin(st[i])) f=1; if (Cifra(st[i])) k++; } if (f) printf("Latin Yes!\n"); else printf("Latin No!\n"); printf("Cifr = %i.\n",k); getch(); }
Еще один пример показывает способ выборки слов из строки, отделенных друг от друга пробелами. Для этого мы напишем несколько полезных функций для работы со строками: Len (str) - определяет длину строки; Cat (str, ch) - конкатенация или склеивание; Задание: распечатать в столбик все слова из строки st. // Task 43 Word from String. #include <stdio.h> #include <conio.h> #include <iostream.h> #include <math.h> char st[36]=""; // -- String int Len(char st[]){ for (int i=0; st[i]; i++); return (i);} void Cat(char st[],char S) { st[Len(st)+1]='\0';st[Len(st)]=S;} void Clr(char st[]) { for (int i=0; st[i]; i++) st[i]='\0';} void Pri(char st[]) { for (int i=0; st[i]; i++) printf("%c",st[i]); printf("\n"); } // ------------ MAIN -------------------------- void main() { int i; char wrd[36]=""; cout<<"Input Line = \n"; gets(st); Cat(st,' '); Pri(st); int CountWord=0; for (i=0; st[i]; i++) { if (st[i]!=' ') Cat(wrd,st[i]);
Дата добавления: 2014-11-29; Просмотров: 495; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |