поставь точку с запятой после определения структуры PHP: #include <iostream.h> struct clinic { int year; char name; }; void vvod (clinic data[10]) { data[0].year = 2011; }
Почему при заполнении массива длинными строками останавливается цикл на 1й-2й записи? PHP: #include <iostream.h> struct clinic { char FIO; char number_room; }; void vvod (clinic data[20], int &n) { cout <<"\nКоличество вводимых записей: "; cin >>n; for (int i = 0; i < n; i++) { cout <<"\n[Ф.И.О. больного] - "; cin >>data[i].FIO; cout <<"\n[Номер палаты] - "; cin >>data[i].number_room; } } int main(){ int n; clinic data[20]; vvod(data, n); }
Написать программу на Си Дан массив вещественных чисел,содержащий 25 элементов,записать сначала все положительные числа и нули,а затем все отрицательные числа,сохраняя порядок их следования.
У тебя структура содержит переменную только под один символ. PHP: struct clinic { char FIO; char number_room; }; Отсюда "быстрый" проскок цикла выходит. Тебе нужен массив символов. PHP: struct clinic { char FIO[64]; char number_room[64]; };
PHP: #include <stdio> int main(){ double arr[25]; int i = 0; printf("Vvedite 25 chisel: "); for(i = 0; i < 25; i++) scanf("%lf",arr[i]); printf("Polozhitelnie chisla:"); for(i = 0; i < 25; i++) if(arr[i] >= 0) printf("%lf ",arr[i]); printf("\nOtricatelnie: "); for (i = 0; i < 25; i++) if(arr[i] < 0) printf("%lf ",arr[i]); return 0; }
Code: #include <conio.h> #include <iostream.h> int main() { int m[25],z[25],n,i,x; clrscr(); x=0; for (i=1;i<=25;i++) { cout<<"Input mas["<<i<<"]="; cin>>m[i]; } cout<<"massiv:"<<endl; for (i=1;i<=25;i++) { cout<<m[i]<<endl; } for (i=1;i<=25;i++) { if (m[i]>0) { z[x]=m[i]; x=x+1; } } for (i=1;i<=25;i++) { if (m[i]=0) { z[x]=m[i]; x=x+1; } } for (i=1;i<=25;i++) { if (m[i]<0) { z[x]=m[i]; x=x+1; } } cout<<"New massiv:"<<endl; for (i=1;i<=25;i++) { cout<<z[i]<<endl; } getch(); } Не компилировал, писал в блокноте
Здравствуйте задали задчку сделать программу которая создает базу данных работников предприятия (информация должна записываться в файл Acess) что могу сказать по функционалу программы то в ней должно вводиться ФИО работника его дата рождения и адрес и год поступления на работу, также чтобы из этой программы можно было распечатать эту информацию. Если сможите помогите пожалуйста пришлите исходник.
Народ выручайте надо решить задачу на паскале: Дан одномерный числовой массив. Перестроить массив таким образом, чтобы вначале следовали отрицательные элементы, затем нули и после располагались положительные элементы массива. Порядок следования среди положительных и отрицательных элементов должен быть сохранен прежним
Написать программу на Си Используя оператор цикла, Найти сумму ряда с точностью е=10-3 ,общий член которого a n = n!/ (n+1)!. Результат вывести, снабдив соответствующим заголовком.
с++ Всем доброго времени суток! Помогите пожалуйста дописать программу С++, которая получает случайное целое типа int и выводит его двоичное представление на экран затем выполняет преобразование, и после выводит на экран двоичное представление результата преобразования. Условие программы: Назовем симметричным байт, в котором нулевой бит имеет такое же значение, что и седьмой, а первый – такое же, что и шестой. Изменить порядок следования симметричных байтов в числе на обратный. И если сможете, сделайте так чтобы преобразование осуществлялось с помощью битовых операций. Использование массивов для представления битов числа нежелательно. Буду очень признателен если поможете) Code: #include<iostream> using namespace std; #include<iomanip> using std::setw; using std::cin; void dispBits(int); int main() { int n; cout<<"vvedite sluchaynoe celoe chislo: "; cin>>n; dispBits(n); return 0; } void dispBits(int val) { const int SHIFT=8*sizeof(int)-1; const int MASK=1<<SHIFT; cout<<setw(7)<<val<<" = "; for(int i=1;i<=SHIFT+1;i++){ cout<<(val&MASK?'1':'0'); val<<=1; if(i%8==0) cout<<' '; } cout<<endl; } эта часть получает целое число и выводит его в двоичном виде. помогите доделать пожалуйста!
Помогите, пожайлуста написать программу на СИ. Дана строка из 20 различных слов (словом считается любой набор букв, за которым следует пробел). Вывести на печать все слова этой строки, содержащие ровно две буквы d.
Здрасьте всем. Необходимо записать в нулевой сектор флешки пароль,а потом по паролю войти на флешку... вот код,но почему-то даже не записывает...Помогите найти проблему... Code: #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #include <fstream> #include <WinIoCtl.h> #include <ctime> #define a 62 #define b 69 #define c 70 #define d 77 using namespace std; int checkingPASS(char our_pass[], int ERROR1) //сравниваем введенный пароль с паролем,хранящимся в файле в зашифрованном виде; { //int KeyOld[20]={0,1,0,1,0,1,0,1,1,1,1,0,1}; //ключ к паролю,хранящемуся в файле; int XOR[8]; //пароль,полученный после шифрования; char KeyOldBuf[512]; char Key1[8+1]; //ключ к паролю, хранящемуся в файле char Password[8+1]; //пароль,вводимый пользователем; int LengthOfPass=0; DWORD n=0; // HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); //DWORD mode = 0; ///GetConsoleMode(hStdin, &mode); // SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT)); HANDLE hFile2=CreateFile(LPCWSTR("\\\\.\\G:"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile2 = INVALID_HANDLE_VALUE) { return false; } if (ReadFile(hFile2, &KeyOldBuf, 512, &n, NULL)!=0) { } CloseHandle(hFile2); int j=0; for (int i=c; i<=d; i++) { Key1[j]=KeyOldBuf[i]; j++; } bool error=false; cout << "Введите пароль: "; cin.getline(Password, 9); //ввод пароля; int LengthOfNewPass=0; //длина введенного пароля; for (int i=0; i<strlen(Password); i++) { XOR[i]=(int(Key1[i])+int(Password[i]))%2; LengthOfNewPass++; } if (LengthOfNewPass!=8) { error=true; ERROR1++; //в случае неверного пароля считаем число ошибок; } else { for (int i=0; i<=(LengthOfNewPass-1); i++) { if ((int(*(our_pass+i)))%2 != XOR[i]) { error=true; ERROR1++; break; } } } if (error==false) { cout<<"Пароль введён успешно\n"; system("dir h:"); ERROR1=4; } else { if (ERROR1!=3) cout<<"Вы ввели неправильный пароль,попытайтесь ещё раз!!!\n"; } return ERROR1; } int addpass() { char Password[8+1]; //пароль,вводимый пользователем; int Key[8+1]; //генерируемый ключ шифрования; int XORPass[8+1]; //пароль,полученный после шифровки и записанный в файл; DWORD n=0; char Buf[512]; char XORPassBuf[512]; cin.getline(Password, 9); while (strlen(Password)!=8) { cout<<"Пароль меньше 8 символов-введите ешё раз!"<<endl; cin.getline(Password, 9); } cout<<"\n"; srand(time(0)); for (int i=0; i<strlen(Password); i++) { Key[i]=char((int)rand ()%2+48) ; //генерируем ключ случайной последовательностью битов; } cout<<"\n"; int j=0; for (int i=c; i<=d; i++) { Buf[i]=Key[j]; j++; } for (int i=0; i<strlen(Password); i++) { XORPass[i]=(char)((Key[i]+int(Password[i]))%2+48); //шифруем пароль } int k=0; for (int i=a; i<=b; i++) { Buf[i]=XORPass[k]; k++; } HANDLE hFile1=CreateFile(LPCWSTR("\\\\.\\G:"), GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile1 == INVALID_HANDLE_VALUE) { cout<<"Error! "; cout<<GetLastError()<<endl; return 0; } else { if (WriteFile(hFile1, &Buf, 512, &n, NULL)!=0) { //cout<<"THe key and the password were successfuly written! "; } CloseHandle(hFile1); return 1; } } Code: #include <iostream> #include <fstream> #include "Main.h" #include <windows.h> #define a 62 #define b 69 #define c 70 #define d 77 using namespace std; int main() { setlocale(LC_ALL,"RUSSIAN"); char our_pass[8+1]; int LengthOfPass=0; int ERROR1=0; char RPCbuf[512]; char otvet[3]; DWORD n=0; HANDLE hFile3=CreateFile(LPCWSTR("\\\\.\\G:"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (ReadFile(hFile3, &RPCbuf, 512, &n, NULL)!=0) { } CloseHandle(hFile3); int j=0; for (int i=a; i<=b; i++) { our_pass[j]=RPCbuf[i]; //cout<<RPC[j]<<" "; j++; } cout<<"\n"; if ((our_pass[0]>='0')&&(our_pass[0]<='1')) { while (ERROR1<3) ERROR1=checkingPASS(our_pass, ERROR1); if (ERROR1==3) cout<<"Доступ закрыт!\n"; } else { cout<<"Файл пуст!\n"; cout<<"Введите новый пароль из 8 символов: "; if (addpass()!=0) cout<<"Пароль успешно записан в файл!\n"; } if (ERROR1!=3) { cout<<"Хотите изменить пароль?: "<<endl; cout<<" 1-ага"<<endl; cout<<" 2-неа"<<endl; cin.getline(otvet,3); if (otvet[0]=='1') { cout<<"Введите новый пароль из 8 символов: "; addpass(); cout<<"Пароль успешно изменён!\n"; } } system("pause"); return 0; } и хедер #ifndef _MAIN_H_ #define _MAIN_H_ int checkingPASS(char our_pass[], int ERROR1); int addpass(); #endif
Помогите написать программу на C++ Написать функцию Arctg1(x, eps) вещественного типа (параметры x, eps — вещественные, |x| < 1, eps > 0), находящую приближенное значение функции arctg(x), где arctg(x) = x – x3 / 3 + x5 / 5 – ... + (–1)n x2n+1 / (2n+1) + ... В сумме учитывать все слагаемые, большие по модулю eps.
Подскажите как определить наибольшее количество прошедшего времени от определенной даты до текущей. Например есть три даты: PHP: #include <iostream.h> int main(){ char* date1 = "21.10.2011"; char* date2 = "8.11.2011"; char* date3 = "29.11.2011"; } И соответственно нужно, что бы с наибольшим прошедшим временем находилась переменная date1. Если возможно, хотелось бы увидеть рабочий пример.
не совсем понятно , тебе просто нужна функция для сравнения двух дат такого вида char* date1 = "21.10.2011"; ???
реализовал в двойном массиве (списке), чтобы была возможность использовать любое количество дат PHP: #include <cstdio> const int SIZE = 3; //число дат в двойном массиве ниже int main(){ char date[SIZE][11] = {"21.10.2011","8.11.2011","29.11.2011"}; int d[SIZE][3]; //массив под (dd,mm,yyyy) int sum[SIZE]; //массив под (yyyymmdd) //переводим дату из текста в число for(int i = 0; i < SIZE; i++) sscanf(date[i],"%i.%i.%i",&d[i][0],&d[i][1],&d[i][2]); //переводим дату из трех чисел в одно (yyyymmdd) для сравнения их как обычные числа for(int i = 0; i < SIZE; i++){ sum[i] = d[i][0] + d[i][1]*100 + d[i][2]*10000; } //находим максимальный и минимальный индекс (соотв.даты в текстовом массиве) int minindex = 0, maxindex = 0; for(int i = 0; i < SIZE; i++){ if(sum[i] > sum[maxindex]) maxindex = i; if(sum[i] < sum[minindex]) minindex = i; } printf("Min: %s\nMax: %s\n", date[minindex],date[maxindex]); return 0; } но вообще, по хорошему, стоило бы реализовать класс для даты, или воспользоватся стандартным существующим.
Delphi Сделать КР на Delphi 1. На форму установлена метка Label1. Вывести в нее расстояние в мм. Между точкой нажатия кнопки мыши на форме и точкой отпускания этой кнопки. Коэффициент пересчета в мм. K = 0.25 мм/pixel. 2. Вывести и изменить дату создания или изменения файла. 3. Написать программу вычисления векторного, скалярного и смешанного произведения векторов. 4. Компонент "Edit+Label". 5. Объект состоит из N шариков, расположенных вдоль прямой линии. Каждый шарик имеет свои координаты центра, диаметр и плотность материала. Составить программу, вычисляющую массу объекта и положение центра масс. Предусмотреть графическую иллюстрацию. Могут отблагодарить немного wm /pm
ввести массив А5. сформулировать его по формуле( Bij=(Ai+Aj)/(1+Aj^2)). найти произведение ML массив А на стобец, в котором содержится минимальный элемент матрицы В помогите пжалста
с++ помогите упростить задачу. Нужно сделать ее как можно проще. заранее спасибо! Code: #include <iostream> #include <conio.h> #include <vector> using namespace std; void ShowHex(unsigned int dec) { vector<char> hex; char hex_num[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', }; while (dec/16 != 0) { hex.push_back(hex_num[dec%16]); dec = dec/16; } hex.push_back(hex_num[dec%16]); for (int i = hex.size()-1; i >= 0; i--) { cout << hex.at(i); } } unsigned char* GenerateBytes(unsigned int dec) { unsigned char *x = new unsigned char[4]; x[0] = dec >> 24; x[1] = dec >> 16; x[2] = dec >> 8; x[3] = dec; return x; } bool CheckByte(unsigned char byte) { //195 = 11000011 //66 = 01000010 //129 = 10000001 if ( (byte & 195 == 0) || (byte & 195 == 66) || (byte & 195 == 129) || (byte & 195 == 195) ) { return true; } else return false; } int Castling(unsigned int dec) { unsigned char *bytes = GenerateBytes(dec); int number, number_byte[4]; int count_symmetric = 4; for (int i = 0; i < 4; i++) { if (CheckByte(bytes[i]) == false) { number_byte[i] = int(bytes[i]) << 8*(3-i); count_symmetric--; } } //перестановка симметричных байтов if (count_symmetric == 1) { for (int i = 0; i < 4; i++) { if (CheckByte(bytes[i]) == true) { number_byte[i] = int(bytes[i]) << 8*(3-i); } break; } } else if (count_symmetric == 2 || count_symmetric == 3) { for (int i = 0; i < 4; i++) { if (CheckByte(bytes[i]) == true) { for (int j = 3; j > 0; j--) { if (CheckByte(bytes[j]) == true) { number_byte[i] = int(bytes[j]) << 8*(3-i); number_byte[j] = int(bytes[i]) << 8*(3-j); break; } } break; } } } else if (count_symmetric == 4) { for (int i = 0; i < 4; i++) { number_byte[i] = int(bytes[3-i]) << 8*(3-i); } } number = number_byte[0] | number_byte[1] | number_byte[2] | number_byte[3]; return number; } //--------------------------------------------------------------------------- int main() { unsigned int x, x_end; cin >> x; ShowHex(x); cout << endl; x_end = Castling(x); ShowHex(x_end); getch(); return 0; }