Студентам с лабораторными сюда (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 20 Jun 2007.

Thread Status:
Not open for further replies.
  1. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    поставь точку с запятой после определения структуры
    PHP:
    #include <iostream.h>

    struct clinic {
        
    int year;
        
    char name;
    };

    void vvod (clinic data[10]) {
        
    data[0].year 2011;
    }

     
    1 person likes this.
  2. LASS0

    LASS0 Member

    Joined:
    3 Jan 2009
    Messages:
    0
    Likes Received:
    17
    Reputations:
    1
    Почему при заполнении массива длинными строками останавливается цикл на 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 0ni++) {
            
    cout <<"\n[Ф.И.О. больного] - ";
            
    cin >>data[i].FIO;
            
    cout <<"\n[Номер палаты] - ";
            
    cin >>data[i].number_room;
        }
    }

    int main(){    
        
    int n;
        
    clinic data[20];
        
    vvod(datan);
    }
     
  3. Goldwiks

    Goldwiks New Member

    Joined:
    3 Aug 2011
    Messages:
    119
    Likes Received:
    3
    Reputations:
    0
    Написать программу на Си
    Дан массив вещественных чисел,содержащий 25 элементов,записать сначала все положительные числа и нули,а затем все отрицательные числа,сохраняя порядок их следования.
     
  4. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    У тебя структура содержит переменную только под один символ.
    PHP:
    struct clinic 
        
    char FIO
        
    char number_room
    };
    Отсюда "быстрый" проскок цикла выходит. Тебе нужен массив символов.
    PHP:
    struct clinic 
        
    char FIO[64]; 
        
    char number_room[64]; 
    }; 
     
  5. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    PHP:

    #include <stdio>

    int main(){

       
    double arr[25];
       
    int i 0;

       
    printf("Vvedite 25 chisel: ");
       for(
    025i++)
          
    scanf("%lf",arr[i]);

       
    printf("Polozhitelnie chisla:");
       for(
    025i++)
          if(
    arr[i] >= 0printf("%lf ",arr[i]);

       
    printf("\nOtricatelnie: ");
       for (
    025i++)
          if(
    arr[i] < 0printf("%lf ",arr[i]);

       return 
    0;

    }
     
    #3745 awdrg, 29 Nov 2011
    Last edited: 29 Nov 2011
  6. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    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();
    }
    Не компилировал, писал в блокноте
     
    _________________________
    #3746 BigBear, 30 Nov 2011
    Last edited: 30 Nov 2011
  7. cerber3000

    cerber3000 Member

    Joined:
    8 Nov 2008
    Messages:
    76
    Likes Received:
    31
    Reputations:
    2
    Здравствуйте задали задчку сделать программу которая создает базу данных работников предприятия (информация должна записываться в файл Acess) что могу сказать по функционалу программы то в ней должно вводиться ФИО работника его дата рождения и адрес и год поступления на работу, также чтобы из этой программы можно было распечатать эту информацию. Если сможите помогите пожалуйста пришлите исходник.
     
  8. str71

    str71 New Member

    Joined:
    14 Dec 2010
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    Народ выручайте надо решить задачу на паскале:

    Дан одномерный числовой массив. Перестроить массив таким образом, чтобы вначале
    следовали отрицательные элементы, затем нули и после располагались положительные
    элементы массива. Порядок следования среди положительных и отрицательных элементов
    должен быть сохранен прежним
     
  9. Goldwiks

    Goldwiks New Member

    Joined:
    3 Aug 2011
    Messages:
    119
    Likes Received:
    3
    Reputations:
    0
    Написать программу на Си

    Используя оператор цикла, Найти сумму ряда с точностью е=10-3 ,общий член которого a n = n!/ (n+1)!. Результат вывести, снабдив соответствующим заголовком.
     
  10. Ivan123

    Ivan123 New Member

    Joined:
    21 Nov 2011
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    с++

    Всем доброго времени суток! Помогите пожалуйста дописать программу С++, которая получает случайное целое типа 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;
    }
    
    эта часть получает целое число и выводит его в двоичном виде. помогите доделать пожалуйста!
     
  11. L.Y.

    L.Y. New Member

    Joined:
    31 Mar 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Помогите, пожайлуста написать программу на СИ.
    Дана строка из 20 различных слов (словом считается любой набор букв, за
    которым следует пробел). Вывести на печать все слова этой строки,
    содержащие ровно две буквы d.
     
  12. A1exx

    A1exx New Member

    Joined:
    8 Feb 2009
    Messages:
    24
    Likes Received:
    4
    Reputations:
    0
    Здрасьте всем.
    Необходимо записать в нулевой сектор флешки пароль,а потом по паролю войти на флешку...
    вот код,но почему-то даже не записывает...Помогите найти проблему...
    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 
     
  13. RastinMonst

    RastinMonst New Member

    Joined:
    31 Jul 2011
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Помогите написать программу на 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.
     
  14. LASS0

    LASS0 Member

    Joined:
    3 Jan 2009
    Messages:
    0
    Likes Received:
    17
    Reputations:
    1
    Подскажите как определить наибольшее количество прошедшего времени от определенной даты до текущей.
    Например есть три даты:
    PHP:
    #include <iostream.h>
    int main(){     
       
    chardate1 "21.10.2011";
       
    chardate2 "8.11.2011";
       
    chardate3 "29.11.2011";
    }
    И соответственно нужно, что бы с наибольшим прошедшим временем находилась переменная date1.
    Если возможно, хотелось бы увидеть рабочий пример.
     
  15. intestyx

    intestyx New Member

    Joined:
    14 Jun 2011
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    а можно С# присылать задачки??
     
  16. sl1k

    sl1k Member

    Joined:
    31 Jul 2009
    Messages:
    106
    Likes Received:
    26
    Reputations:
    5
    не совсем понятно , тебе просто нужна функция для сравнения двух дат такого вида char* date1 = "21.10.2011"; ???
     
  17. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    реализовал в двойном массиве (списке), чтобы была возможность использовать любое количество дат
    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 0SIZEi++)
          
    sscanf(date[i],"%i.%i.%i",&d[i][0],&d[i][1],&d[i][2]);
       
    //переводим дату из трех чисел в одно (yyyymmdd) для сравнения их как обычные числа
       
    for(int i 0SIZEi++){
          
    sum[i] = d[i][0] + d[i][1]*100 d[i][2]*10000;
       }
       
    //находим максимальный и минимальный индекс (соотв.даты в текстовом массиве)
       
    int minindex 0maxindex 0;
       for(
    int i 0SIZEi++){
          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;
    }
    но вообще, по хорошему, стоило бы реализовать класс для даты, или воспользоватся стандартным существующим.
     
    #3757 awdrg, 1 Dec 2011
    Last edited: 1 Dec 2011
    1 person likes this.
  18. bogger

    bogger Elder - Старейшина

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    Delphi

    Сделать КР на Delphi
    1. На форму установлена метка Label1. Вывести в нее расстояние в мм. Между точкой нажатия кнопки мыши на форме и точкой отпускания этой кнопки. Коэффициент пересчета в мм. K = 0.25 мм/pixel.
    2. Вывести и изменить дату создания или изменения файла.
    3. Написать программу вычисления векторного, скалярного и смешанного произведения векторов.
    4. Компонент "Edit+Label".
    5. Объект состоит из N шариков, расположенных вдоль прямой линии. Каждый шарик имеет свои координаты центра, диаметр и плотность материала. Составить программу, вычисляющую массу объекта и положение центра масс. Предусмотреть графическую иллюстрацию.

    Могут отблагодарить немного wm /pm
     
  19. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    ввести массив А5. сформулировать его по формуле( Bij=(Ai+Aj)/(1+Aj^2)). найти произведение ML массив А на стобец, в котором содержится минимальный элемент матрицы В

    помогите пжалста :)
     
  20. Ivan123

    Ivan123 New Member

    Joined:
    21 Nov 2011
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    с++ помогите упростить задачу.

    Нужно сделать ее как можно проще. заранее спасибо!

    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;
    }
     
Thread Status:
Not open for further replies.