hello all!Помогите решить простенькую задачу на паскале.... 9. Задано множество символов. Перечислить все его подмно- жества. Выполнить генерацию случайного подмножества.
Прошу помощи по математической статистике. Тема : Теория индексов. В принципе, знаком. теоретически. Но нужно показать как работают эти индексы в exel Какие брать индексы ? Индивидуальные ? Сложные? Какой пример можно сделать наглядный проще всего? Заранее спасибо.
TASM (Ввод-вывод. операции над числами) Задача: Вводим число в десятичной системе счисления. На экран вывести его шестнадцатеричное значение. Подскажите пожалуйста как реализуется, и если можно, кусок кода с этим процессом.
Code: .model tiny .code .286 ; для команды shr al,4 org 100h ; начало СОМ-файла start: mov dx,offset message1 mov ah,9 int 21h ; вывести приглашение ко вводу message1 mov dx,offset buffer mov ah,0Ah int 21h ; считать строку символов в буфер mov dx,offset crlf mov ah,9 int 21h ; перевод строки ; перевод числа в ASCII-формате из буфера в бинарное число в АХ xor di,di ; DI = 0 - номер байта в буфере xor ax,ax ; АХ = 0 - текущее значение результата mov cl,blength xor ch,ch xor bx,bx mov si,cx ; SI - длина буфера mov cl,10 ; CL = 10, множитель для MUL asc2hex: mov bl,byte ptr bcontents[di] sub bl,'0' ; цифра = код цифры - код символа "0", jb asc_error ; если код символа был меньше, чем код "0", cmp bl,9 ; или больше, чем "9", ja asc_error ; выйти из программы с сообщением об ошибке, mul cx ; иначе: умножить текущий результат на 10, add ax,bx ; добавить к нему новую цифру, inc di ; увеличить счетчик cmp di,si ; если счетчик+1 меньше числа символов - jb asc2hex ; продолжить (счетчик считается от 0) ; вывод на экран строки message2 push ax ; сохранить результат преобразования mov ah,9 mov dx,offset message2 int 21h pop ax ; вывод на экран числа из регистра АХ push ax xchg ah,al ; поместить в AL старший байт call print_al ; вывести его на экран pop ax ; восстановить в AL младший байт call print_al ; вывести его на экран ret ; завершение СОМ-файла asc_error: mov dx,offset err_msg mov ah,9 int 21h ; вывести сообщение об ошибке ret ; и завершить программу ; Процедура print_al ; выводит на экран число в регистре AL ; в шестнадцатеричном формате, ; модифицирует значения регистров АХ и DX print_al: mov dh,al and dh,0Fh ; DH - младшие 4 бита shr al,4 ; AL - старшие call print_nibble ; вывести старшую цифру mov al,dh ; теперь AL содержит младшие 4 бита print_nibble: ; процедура вывода 4 бит (шестнадцатеричной цифры) cmp al,10 ; три команды, переводящие цифру в AL sbb al,69h ; в соответствующий ASCII-код das ; (см. описание команды DAS) mov dl,al ; код символа в DL mov ah,2 ; номер функции DOS в АН int 21h ; вывод символа ret ; этот RET работает два раза - один раз ; для возврата из процедуры print_nibble, ; вызванной для старшей цифры, ; и второй раз - для возврата из print_al message1 db "Десятичное число: $" message2 db "Шестнадцатеричное число: $" err_msg db "Ошибка ввода" crlf db 0Dh,0Ah,'$' buffer db 6 ; максимальный размер буфера ввода blength db ? ; размер буфера после считывания bcontents: ; содержимое буфера располагается за ; концом СОМ-файла end start
Code: char * strtok (char * string, const char * control) { unsigned char *str; const unsigned char *ctrl = control; unsigned char map[32]; int count; static char *nextoken; for (count = 0; count < 32; count++) map[count] = 0; do { map[*ctrl >> 3] |= (1 << (*ctrl & 7)); } while (*ctrl++); if (string) str = string; else str = nextoken; while ( (map[*str >> 3] & (1 << (*str & 7))) && *str ) str++; string = str; for (;*str;str++) if ( map[*str >> 3] & (1 << (*str & 7)) ) { *str++ = '\0'; break; } nextoken = str; if ( string == str ) return NULL; else return string; }
Добрый день всем! Хотел бы попросить помочь решить несколько задач на borland C. 1. Дано 2 одномерных массива целых чисел A и B. Создать одномерный массив C, содержащий элементы в единственном экземпляре, которые меньше заданного числа и присутствуют в нескольких экземплярах либо в A, либо в B. 2. В заданном одномерном массиве поменять местами два первых положительных. 3. В заданной матрице поменять местами строки, содержащие два первых отрицательных элемента среди элементов выше главной диагонали. 4. В заданной матрице удалить методом сдвига столбцы, содержащие максимальный и третий нулевой элементы. 5.1 Дано: текст, содержащий символьные строки (ввод осуществляется до тех пор, пока не будет введена пустая строка). Создать новый массив подстрок, выделив из каждой строки подстроки, разделенные одной или несколькими цифрами. Массив подстрок вывести на экран, каждую подстроку с новой строки. Пустые подстроки не выделять и не печатать. 5.2 Среди выделенных подстрок найти подстроку, содержащую наибольшее число пробелов. 5.3 Преобразовать строку, которой принадлежит найденная подстрока: заменить '***' на один пробел. P.S. использование указателей обязательно. P.P.S. Заранее огромное спасибо
Здравствуйте, помогите написать программу на Borland C++ Условие: Ввести последовательность 7 целых чисел и поменять местами ее первый элемент с пятым элементом. Нужно написать с подпрограммой и без подпрограммы. Хотя бы помогите написать один вариант. Заранее Благодарен.
Если я всё верно понял, то самый простой вариант такой: Code: #include <stdio.h> /* void change(int *arr) { int tmp; tmp = arr[0]; arr[0] = arr[4]; arr[4] = tmp; } */ int main() { int i, arr[7]; for(i=0; i<7; i++) scanf("%d", &arr[i]); // change(arr); i = arr[0]; arr[0] = arr[4]; arr[4] = i; for(i=0; i<7; i++) printf("%d",arr[i]); return 0; }
becensed Спасибо, за помощь Но как то не совсем то что нужно) Я так понял, что нужно это сделать с помощью Memo1 и Memo2. Тоесть в Мемо1 ввести 7 целых чисел, с помощью Button1 ввывести в Мemo2 результат уже с тойже последовательностью но только уже чтобы первый элемент поменялся с пятым. тип такого:
С этого надо было начинать. К счастью (для тебя - к сожалению) я никогда в жизни не использовал Memo и не знаю что это такое. Но принцип такой же. Если это что-то вроде листбокса, то поменяь местами элементы проще простого (есть винапи).
Code: /* 2. В заданном одномерном массиве поменять местами два первых положительных. */ #include <stdio.h> int main() { int A[] = {1,2,-6,-11,1,-9,12,-11,-2,9,8}, *B=A; int size = sizeof(A)/sizeof(A[0]), i, tmp; for (i=0; i<size; i++) printf("%d ",*(B+i)); for (i=0; i<size; i++) { if(*(B+i)>0 && *(B+i+1)>0) { tmp = *(B+i); *(B+i) = *(B+i+1); *(B+i+1) = tmp; break; } } printf("\n"); for (i=0; i<size; i++) printf("%d ",*(B+i)); return 0; }
Не знаю, насколько это верно, но на ночь глядя получилось такое: Code: /* 1. Дано 2 одномерных массива целых чисел A и B. Создать одномерный массив C, содержащий элементы в единственном экземпляре, которые меньше заданного числа и присутствуют в нескольких экземплярах либо в A, либо в B. */ #include <stdio.h> #include <stdlib.h> int check_arr(int *, int, int); int main() { int A[] = {1,2,3,4,5,6,7,8,9,0,9,7,5,1,0}, B[] = {0,9,8,7,6,5,4,3,2,1,1,3,4,8,9}; int *C; int i,j,t=0, n=5, // Заданное число size = sizeof(A)/sizeof(A[0]); C = (int *)malloc(size*sizeof(int)); // Ищем элементы for(i=0;i<size;i++) { for(int j=i+1;j<size;j++) { if(A[j]==A[i] && A[j]<n) { C[t] = A[j]; t++; } if(B[j]==B[i] && B[j]<n) { C[t] = B[j]; t++; } } } // Удаляем повторения из результата. for(i=0;i<t;i++) { for(int j=i+1;j<t;j++) { if(C[j]==C[i]) { C[j]=C[t-1]; t--; } } } for(i=0;i<t;i++) printf("%d ", C[i]); free(C); return 0; } Что здесь происходит: - В циклах бегаем по массивам А и В в поисках одинаковых элементов, которые меньше n. Если такие находим (или в А или в В), то пишем их в С. - Берем массив С, идем по нему и удаляем дубликаты, если такие будут. Массивы А и В должны быть одинакового размера, иначе надо переделывать Если там обязательно указатели юзать, то напихай их сам
Помогите пожалуйста решить на языке С, с использованием функции. Дана послідовність n натуральних чисел. Для кожного числа обчислити кількість його цифр та суму цих цифр. Вивести на екран кожне число, кількість його цифр ти їх суму. Використати процедуру для обчислення кількості цифр числа та їх суми. Данная последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количество его цифр ты их сумму. Использовать процедуру для вычисления количества цифр числа и их суммы.
Всем привет! Нужно переделать следующую программу, которая реализованна с помощью структуры так, чтобы она основывалась на классе. Код: Code: #include <stdio.h> #include <string> #include "stdafx.h" #include "fstream" #include "conio.h" #include "math.h" #include "iostream" using namespace std; int main() { setlocale(LC_ALL,"russian_russia");// подключение русского языка struct aeroflot// описание структуры "Аэрофлот" { char dest[10];// массив для пункта назначения int numb;// переменная для новеров рейсов char type[10];// массив для типа самолета }; aeroflot reys[7];// кол-во записей о рейсах int kol=7; int i=0; cout << "Введите данные: " << endl; cout << "" <<endl; for (i=0; i<kol; i++)// цикл для ввода данных о рейсе { for (int o=0; o<kol; o++) { { cout << i+1 <<"-й маршрут." << endl; cout << "Пункт назначения (не более 10 симв.): "; cin >> reys[i].dest; cout << "Номер рейса: "; cin >> reys[i].numb; cout << "Тип самолета (не более 10 симв.): "; cin >> reys[i].type; } cout << "" <<endl; break; } } int temp = i; for (i = 0; i < temp - 1; i++)// цикл сортировки по возрастанию { int imin = i;// принимаем за наименьший первый из рассматриваемых элементов for (int j = i + 1; j < temp; j++)// поиск номера минимального элемента из неупорядоченных if (reys[j].numb < reys[imin].numb) imin = j; aeroflot a = reys[i];// обмен двух элементов массива структур reys[i] = reys[imin]; reys[imin] = a; } cout << "Маршруты по возрастанию номера рейса: " << endl; cout << " " << endl; for (i = 0; i < temp ; i++) { cout << reys[i].dest <<" " << reys[i].numb << " " << reys[i].type << endl; } while (true) { char inp [10]; cout << endl << "Ввведите пункт назначения: "; cin >> inp; cout << endl; bool f = false;// флаг (найдено ли хотя бы одно) for (i=0; i<kol; i++) { if (strcmp (reys[i].dest, inp)==0)//сравнение введенной строки с массивом пунктов назначения { cout << "Найдено!" << endl; cout << "Номер рейса: " <<' '<< reys[i].numb<<' '<< "Тип самолета: " <<' '<< reys[i].type << ' '<<endl; f = true; } } if (!f) cout << "Нет такого пункта назначения!"; _getch(); return 0; } } Помогите пожалуйста! Что-то никак не соображу, как переделать, к примеру эту запись из структуры Code: aeroflot reys[7];// кол-во записей о рейсах чтобы можно было обращаться вот так же: Code: reys[i].type Не знаю, может непонятно изложил, но я вообще запутался... Нужно все операции сделать функциями (ввод, сортировка, поиск), поэтому у меня еще и не получается передавать данные в функции. ____ Хотя... может мне не надо ничего переделовать, а сделать класс, включающий эту структуру. Так ведь можно?
Ну тогда просто измени слово struct на слово class,а данные объяви с описателем public и будет тебе класс
тогда у меня функции не получаются... reys перед членами класса выдает ошибку - необъявленный идентификатор...