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

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

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

    LASS0 Member

    Joined:
    3 Jan 2009
    Messages:
    0
    Likes Received:
    17
    Reputations:
    1
    Подскажите какой функцией и как можно перезаписать в файле определенное значение?

    Задание:
    Ввести файл F . Каждый элемент в файле больший 7 домножить на
    результат целочисленного деления этого элемента на 7. Файл вывести до и
    после преобразования.


    PHP:
    #include <iostream.h>
    #include <math.h>

    int main(){
        
    int f;
        
    FILE fo;
        
    fo fopen("zadacha.txt","wt");
        
        
    cout <<to_io("Заполните файл (признак конца ввода: \"555\")\n");
        
    int i 1;
        
    cout <<to_io("элемент #")<<(i)<<" = ";
        
    cin >>f;
        
    fprintf(fo"%d\n"f);
        while (
    != 555) {
            
    cout <<to_io("элемент #")<<(i+1)<<" = ";
            
    cin >>f;
            if (
    != 555)
                
    fprintf(fo"%d\n"f);
            
    i++;
        }
        
    fclose(fo);
        
        
    fo fopen("zadacha.txt","rt");
        
    int del;    
        while(!
    feof(fo)) {
            
    fscanf(fo"%d\n", &f);
            if (
    7) {
                
    del f/7;
                
    *= del;
                
    // Вот здесь надо записать новое значение элемента на место старого.
            
    }
        }
        
    fclose(fo);
        
        
    int stopcin >>stop;    
    }
     
  2. juzam

    juzam New Member

    Joined:
    18 Oct 2010
    Messages:
    45
    Likes Received:
    2
    Reputations:
    0
    В текстовом - fprintf, в бинарном - fwrite.
     
  3. A1exx

    A1exx New Member

    Joined:
    8 Feb 2009
    Messages:
    24
    Likes Received:
    4
    Reputations:
    0
    Ой парни ищзвинйте,но как можно при вводе символов заменять их сразу на * в С++ ??? Когда вводим в консоль пароль,например, 123 и сразу при нажатии 1 она меняется на *,можно ли ваще?))
     
  4. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Для C++ нет решения. Можно использовать API ОСи, на которой программа запускается, либо C.

    http://stackoverflow.com/questions/6899025/hide-user-input-on-password-prompt
    http://www.vbforums.com/showthread.php?t=487490
     
  5. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    C#
    Есть база данных, в ней 10 таблиц. Добавил на форму comboBox и dataGridView. Далее, необходимо в comboBox добавить заголовки таблиц и при смене итема у comboBox менять данные в datagridView(отображать содержимое выбранной таблицы), в том числе, его кол-во строк и столбцов.
     
  6. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Как должна происходить смена через комбобокс?Ты имееш ввиду если селектирова элемент в комбобоксе, то в датагрид автоматически будет произведена смена данных?Уточни.

    В любом случае вот тебе линьк на http://dotnet-snippets.de/dns/spalten-des-wpf-datagrid-in-net-4-anpassen-SID1402.aspx , здесь подробно описано как выводить данные в датагрид - то что не на немецком, не страшно, все предельно понятно из видео.
    С комбо , если я правильно тебя понял, все просто - выводишь в комбобоксе(хотя по мне так лучше использовать ListBox) имена всех таблиц базы данных. После чего исопльзуешь - SelectedItem и на него уже вяжешь данные выводимые в DataGrid.

    Будут вопросы - пиши, только не забудь код выложить.
    P.S. можешь и в личку.
     
  7. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    реализуйте WinForms приложение, позволяющее пользователю выбирать название таблицы из базы данных, с помощью выпадающего списка. В результате выбора таблицы приложение должно отображать содержимое данной таблицы в форму.
    вот так правильно звучит задание


    За ссыль - спасибо. Гляну.


    Code:
     InitializeComponent();
     
                // 5 столбцов
                dataGridView1.Columns.Add("column1", "Число 1");
                dataGridView1.Columns.Add("column2", "Число 2");
                dataGridView1.Columns.Add("column3", "Число 3");
                dataGridView1.Columns.Add("column4", "Число 4");
                dataGridView1.Columns.Add("column5", "Число 5");
                
                // 1 строка
                dataGridView1.Rows.Add(1);
     
                // 5 итемов
                comboBox1.Items.Add("0");
                comboBox1.Items.Add("1");
                comboBox1.Items.Add("2");
                comboBox1.Items.Add("3");
                comboBox1.Items.Add("4");
            }
     
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                int i;
     
               // очистка перед новым выбором
                dataGridView1.Rows.Clear();
     
                for (i = 0; i < dataGridView1.Columns.Count; i++)
                {
                    if (comboBox1.SelectedIndex == i)
                    {
                        // добавляю в качестве примера туда заголовок выбранного итема comboBox, в вашем случае это набор значений!!!
                        dataGridView1[i, 0].Value = comboBox1.Items[i];
                    }
                }
            } 
    Пробовал, но не могу понять, как подвязать базу в комбобокс..
     
    #3687 F&D, 17 Nov 2011
    Last edited: 17 Nov 2011
  8. D[o]A

    D[o]A New Member

    Joined:
    15 Nov 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Нужно перевести программу с делфи на с++/либо с шарп кто может помочь? текст программы ниже.... проблема в том что с++/с шарп не знаю почти....





    PHP:
    unit Unit1;

    interface

    uses
      Windows
    MessagesSysUtilsVariantsClassesGraphicsControlsForms,
      
    DialogsStdCtrlsExtCtrlsGridsComCtrlsButtonsXPMan;

    const
     
    n=100;
    type
     mas  
    = array[1..n,1..n+1of double;
     
    vec  = array[1..nof double;


      
    TForm1 = class(TForm)
        
    Memo1TMemo;
        
    PageControl1TPageControl;
        
    StringGrid1TStringGrid;
        
    Label1TLabel;
        
    BitBtn2TBitBtn;
        
    Label2TLabel;
        
    Edit1TEdit;
        
    BitBtn3TBitBtn;
        
    Label3TLabel;
        
    Label4TLabel;
        
    Label5TLabel;
        
    BitBtn1TBitBtn;
        
    XPManifest1TXPManifest;
        
    procedure FormCreate(SenderTObject);
        
    procedure BitBtn2Click(SenderTObject);
        
    procedure BitBtn3Click(SenderTObject);
        
    procedure BitBtn1Click(SenderTObject);
      private
        
    procedure LoadMatrixFromGrid(GridTStringGrid; var amas);
        
    procedure j_gaussa(nintegeramas; var xvec);
        { Private 
    declarations }
      public
        { Public 
    declarations }
      
    end;

     var
     
    Form1TForm1;

      
    implementation
       
    {$R *.dfm}

    procedure TForm1.j_gaussa(n:integer;a:mas;var x:vec);
      var
      
    b:Double;
      
    TabTTabSheet;
      
    strstr2string;
      
    StepGridTStringGrid;
      
    StepMemoTMemo;
      
    gi,gjinteger;
      
    ijinteger;
     
    begin
     
    for k:=1 to n do
      
    begin
       b
    :=a[k,k];

       
    Tab := TTabSheet.Create(PageControl1);
       
    Tab.PageControl := PageControl1;
       
    Tab.Caption := 'Шаг '+intToStr(k);

       
    str := IntToStr(k)+'-ю строку разделим на 'FormatFloat('0.00',b);
       
    StepMemo := TMemo.Create(Tab);
       
    StepMemo.Parent := Tab;
       
    StepMemo.Top := 10;
       
    StepMemo.Left := 10;
       
    StepMemo.Width := Tab.Width 20;
       
    StepMemo.Height := 50;

       for 
    j:=1 to n+do a[k,j]:=a[k,j]/b;
       for 
    i:=1 to n do
        if 
    i<>k then
         begin
          b
    := a[i,k] * -1;
          
    str2 := FormatFloat('0.00',b);
          
    str := str ', умножим на '+str2+' и прибавим к '+IntToStr(i)+'-й';
          for 
    j:=1 to n+do a[i,j] := a[i,j]+a[k,j]*b;
         
    end;

      
    StepMemo.Lines.Add(str);
      
    StepGrid := TStringGrid.Create(Tab);
      
    StepGrid.Parent := Tab;
      
    StepGrid.FixedCols := 0;
      
    StepGrid.FixedRows := 0;
      
    StepGrid.Left := 0;
      
    StepGrid.Height := 130;
      
    StepGrid.Width := 400;
      
    StepGrid.ColCount := StringGrid1.ColCount;
      
    StepGrid.RowCount := StringGrid1.RowCount;
      
    StepGrid.Top := Tab.Height StepGrid.Height;

      for 
    gi := 0 to  n-do
      for 
    gj := 0 to n 1-do StepGrid.Cells[gj,gi] := FormatFloat('0.00'a[gi+1,gj+1]);

     
    end;

     for 
    i:=1 to n do x[i] := a[i,n+1];
     
    end;

    procedure TForm1.LoadMatrixFromGrid(GridTStringGrid; var amas);
    var
     
    ijinteger;
    begin
     
    for := 0 to Grid.RowCount do
       for 
    := 0 to Grid.ColCount do
       
    begin
         
    if Grid.Cells[j,i] = '' then Grid.Cells[j,i] := '0';
         
    a[i+1,j+1] := StrToFloat(Grid.Cells[j,i]);
       
    end;
    end;

    procedure TForm1.BitBtn1Click(SenderTObject);
    var
     
    ijinteger;
    begin
    for := 0 to StringGrid1.RowCount do
       for 
    := 0 to StringGrid1.ColCount do StringGrid1.Cells[j,i] := '';
    end;

    procedure TForm1.BitBtn2Click(SenderTObject);
    var
     
    iinteger;
     
    xvec;
     
    matrixmas;
    begin
    while (PageControl1.PageCount 0) do PageControl1.ActivePage.Free;

    LoadMatrixFromGrid(StringGrid1,matrix);
    j_gaussa(StringGrid1.RowCountmatrixx);

    Memo1.Lines.Clear;
    for 
    i:=1 to StringGrid1.RowCount do   Memo1.Lines.Add('x['+IntToStr(i)+']='FormatFloat('0.00'x[i]));
    end;

    procedure TForm1.BitBtn3Click(SenderTObject);
    var
     
    Sizeinteger;
    begin
    Size 
    := StrToInt(Edit1.Text);
    StringGrid1.ColCount := Size 1;
    StringGrid1.RowCount := Size;
    end;

    procedure TForm1.FormCreate(SenderTObject);
    begin   
     Memo1
    .Clear;
    end;

    end.
     
  9. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    А как ты вообще считываешь данные из базы?
    Покажи свой код считки данных с базы, дальше уже огт некого отталкиваться будем.

    По сути нужно создать :

    Code:
    /// <summary>
    		/// DependencyProperty für MyList.
    		/// </summary>
    		public static readonly DependencyProperty MyListProperty =
    			DependencyProperty.Register("MyList", typeof(ObservableCollection<DatabaseParams>), typeof(MainWindow), new FrameworkPropertyMetadata(null));
    
    		/// <summary>
    		/// 
    		/// </summary>
    		public ObservableCollection<DatabaseParams> MyList
    		{
    			get { return (ObservableCollection<DatabaseParams>)GetValue(MyListProperty); }
    			set { SetValue(MyListProperty, value); }
    		}
    
    public MainWindow()
    		{
    			MyList = new ObservableCollection<test>();
    			InitializeComponent();
    		}
    
    	private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    		{
    
    				 
    			ObservableCollection<test> temp = new ObservableCollection<test>();
    
    			temp.Add(MyList.SingleOrDefault(pret => pret.Name == MyList[comboBox1.SelectedIndex].Name));//Смотрим выделенную Таблицу в Combobox
    			dataGrid1.ItemsSource = temp;
    }
    
    --------------------------------------------------------------------
    А далее в XAML для combox b datagried:
    combobox:
    Code:
    <ComboBox  Height="23" HorizontalAlignment="Left" ItemsSource="{Binding MyList, ElementName=self}" Margin="12,24,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" SelectionChanged="comboBox1_SelectionChanged">
    			<ComboBox.ItemTemplate>
    
    				<DataTemplate>
    					<ComboBoxItem Content="{Binding TableName}">
    						
    					</ComboBoxItem>
    				</DataTemplate>
    			</ComboBox.ItemTemplate>
    		</ComboBox>
    
    Code:
    <DataGrid AutoGenerateColumns="True" Height="200" HorizontalAlignment="Left" Margin="12,90,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="200" CanUserAddRows="False" CanUserDeleteRows="False" IsReadOnly="true" />
    
    
    Но это грубый набросок. Покажи свой код, куда и как ты записываешь считаные данные из БД.

    P.S. Что бы отобразить имя таблицы - TableName должно входить в класс DatabaseParams, в котороом будут находится переменные для записи данных из БД.
    Например:
    Code:
    Public class DatabaseParams
    {
    public string TableName {get;set}
    public string Param1 {get;set;}
    ...
    public string ParamN {get;set}
    }
    
     
    #3689 Spot, 17 Nov 2011
    Last edited: 17 Nov 2011
  10. R1ze007

    R1ze007 New Member

    Joined:
    7 Mar 2011
    Messages:
    34
    Likes Received:
    0
    Reputations:
    0
    Помогите решить задачу:

    С клавиатуры вводится исходная строка. Если в строке имеются цифры, то она является зшифрованной.

    Если исходная строка не содержит цифр (те символов с кодами 48-57 по ASCII), то она является не зашифрованной. Необходимо заменить все символы с кодами 33-99 на их двузначные кода. Символы с другими кодами выводятся без изменений.

    Пример:
    Введит строку:
    Hello!
    Вывод.
    Строка не зашифрована. Шифр: 72ello33


    Помогите пожалуйста, с подключением библиотек stdio, string, stdlib
     
  11. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Уважаемый Spot, все намного страшнее.
    Как я уже писал:
    Есть база данных, в ней 10 таблиц. Добавил на форму comboBox и dataGridView. В dataGridView добавил базу через data Source(база MS Access)

    соединение с базой(в моем случае MS Access):
    Code:
    OleDbConnection conn = new OleDbConnection();
    try{
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=../../dm.mdb";
    conn.Open();
     
    ...
     
    finally
    {
    conn.Close();
    }
    }
    А вот как дальше... без понятия..

    Если бы нужно было *.xml было бы проще. Но, тот же принцип не пройдет, я так понял:
    Code:
    public Form1()
            {
                InitializeComponent();
     
                DataSet Dset = new DataSet();
                Dset.ReadXml("..\\..\\XMLData.xml");
     
                for (int item = 0; item < Dset.Tables.Count; item++)
                {
                    comboBox1.Items.Add(Dset.Tables[item].
                   TableName.ToString());
                }
                private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
     {
              dataGridView1.DataSource = null;
              dataGridView1.DataSource = Dset.Tables[comboBox1.Text];
     }
    в общем.. вот.
     
  12. Spot

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

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1

    Ну что вот? Ты бы хоть основы почитал - конечно не пройдёт.А код твой для работы с xml благополучно скопипастен с одного англоязычного форума. Если уж стырил что то - то вникни сначала, прежде чем выкладывать.

    По делу: вот тебе статья здесь весьма подробно описано как подключаться к MS Access и посылать простинькие запросы. Подстроить под себя будет не проблема - так что вперед.
    Если возникнут проблемы(а что то подсказывает мне, что они возникнут), то выкладывай свой код и не забудь прикрепить файл со своей БД.
    И попробуй действительно вникнуть в код статья выше и переделать хотя бы частично для себя.
    Покажи, что ты действительно хочешь вникнуть в тему, а не просто что бы за тебя кто-то что то накотал.
     
  13. F&D

    F&D Member

    Joined:
    6 Nov 2008
    Messages:
    341
    Likes Received:
    8
    Reputations:
    5
    Я и не говорил, что это код(с англоязычного форума) мой.
    В остальном, хорошо. Спасибо за ссылку, и пояснения.
     
  14. Nek1t

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

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    Нужна помощь по асму, необходимо подправить исходник резидентной программы и изменить способ выгрузки ее из памяти. Все подробности в аську (на аве) / пм. Либо просто опишитесь в топике, и я сам вам стукну в аську/пм.
     
    #3694 Nek1t, 18 Nov 2011
    Last edited: 19 Nov 2011
  15. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    сюда пости,тебе ж нужно.
     
  16. cerber3000

    cerber3000 Member

    Joined:
    8 Nov 2008
    Messages:
    76
    Likes Received:
    31
    Reputations:
    2
    Пожалуйста помогите с задачкой на QBasic
    [​IMG]
    За ранее огромное спасибо. :)
     
  17. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    держи
    Code:
    CLS
     DIM s AS STRING, R AS STRING, c AS STRING * 1
     INPUT "Vvedite stroku:", s$
     k = 0
       FOR i = 1 TO LEN(s$)
        c$ = MID$(s$, i, 1)
         
    IF c$ = "o" THEN c$ = "a"
       IF MID$(s$, i, 1) = "o" THEN k = k + 1
     
        R = R + c$
        NEXT i
    
     PRINT "Result: "; R
     PRINT "kol-vo izmenennih bukv ="; k
     
    2 people like this.
  18. Snax

    Snax New Member

    Joined:
    10 Oct 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Предмет - Математическая статистика.
    Цель задачи
    Прочитать из файла числа, составить из них динамический массив, найти: среднее, медиану, СКО, дисперсию, асимметрию, эксцесс.
    Построить по этим данным гистограмму. (Ось X - среднее арифметическое от левого и правого края, Ось Y - количество элементов таких что левый край <= n < правый край).
    По причине того, что в программе используются вещественные числа, операции сравнения выполняются некорректно, а следовательно и программа работает не так.
    Вот код проблемного участка:
    Где X - массив среднего арифметического от краёв
    nCount - массив элементов TmpF <= n < TmpF1, TmpF,TmpF1 - края (левый/правый),
    Eps - для погрешности при сравнеении дробей, dCount - количество диапазонов, Step - шаг на который увеличиваются границы.
    Code:
    SetLength(x,Dcount);
    SetLength(nCount,Dcount);
    
    tmpF:=a[0];
    tmpF1:=TmpF+Step;
    count:=0; k:=0;
    
    
    Eps:=0.001;
    For tmpi:=0 to dCount-1 do begin
      x[k]:= (tmpF + tmpF1)/2;                                                       
      For j:=0 to N do
        If (a[j]>=tmpF) and (ABS(a[j]-tmpF1) >= Eps) and (a[j]<tmpF1) then inc(count);
        nCount[k]:=count;
        count:=0;
    
      tmpF:=tmpF1;
      tmpF1:=tmpF1+Step;
      inc(k);
    
     end;
    
    Ошибка возникает в цикле If если верхняя граница совпадает с элементом массива. Она записывается в nCount, хотя должна игнорироваться.
    Заранее спасибо.
     
  19. melоman

    melоman New Member

    Joined:
    14 Jan 2010
    Messages:
    10
    Likes Received:
    3
    Reputations:
    1
    Нужна помощь в написании кода. Нужно сделать 2 лабы. Стоимость предлогайте в icq 4 один 4 8 шесть шесть

    1
    2
     
  20. SeoBee

    SeoBee New Member

    Joined:
    9 Oct 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте. Написал программу к задаче:
    Заполнить сектора матрицы, которые лежат слева и справа от главной и побочной диагоналей значениями вектора b1, b2, ... , b32, от левого верхнего угла вниз - вправо. Остаток матрицы заполнить нулями. ( На рисунке указаны координаты вектора b.)
    [​IMG]



    Но на выходе программа заполняет столбцы матрицы только последней цифро вектора. Что здесь неправильно?
     
Thread Status:
Not open for further replies.