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

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

Thread Status:
Not open for further replies.
  1. -=megahertz=-

    -=megahertz=- Elder - Старейшина

    Joined:
    23 May 2007
    Messages:
    79
    Likes Received:
    16
    Reputations:
    1
    помочь дописать или если есть свой вариант то можно и его

    Code:
    procedure TForm2.Timer2Timer(Sender: TObject);
    var x:integer;
    begin
    
     {Первая мемо}
    
    if filebuffer.stringgrid3.cells[0,1]<>'' then
    
    for x:=1 to 43  do
    if obsh_vrm>strtoint(filebuffer.StringGrid3.Cells[0,x]) then
    begin
    memo8.Text:=filebuffer.StringGrid2.Cells[2,x];
    memo9.Text:=filebuffer.StringGrid2.Cells[3,x];
    
    memo4.Text:=filebuffer.StringGrid2.cells[2,x+1];
    memo5.Text:=filebuffer.StringGrid2.cells[3,x+1];
    
    if Memo4.Text='99.99' then Memo4.Text:='     ';
    if Memo5.Text='99.99' then Memo5.Text:='     ';
    if Memo8.Text='99.99' then Memo8.Text:='     ';
    if Memo9.Text='99.99' then Memo9.Text:='     ';
    end;
    
    end;

    Code:
    unit Unit13;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, ValEdit, ExtCtrls, StdCtrls, ComCtrls;
    
    type
      Tfilebuffer = class(TForm)
        StringGrid1: TStringGrid;
        StringGrid2: TStringGrid;
        StringGrid3: TStringGrid;
        Button1: TButton;
        ProgressBar1: TProgressBar;
        Timer1: TTimer;
        procedure FormCreate(Sender: TObject);
        procedure FormActivate(Sender: TObject);
        procedure Timer1Timer(Sender: TObject);
    
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      filebuffer: Tfilebuffer;
      i:integer;
      o:integer;
      txt:string;
      txt2:integer;
      f:textfile;
      s:string;
      fff:string;
      ii:string;
      ll:string;
      nn:string;
      mm:integer;
    
    implementation
    
    {$R *.dfm}
    
    procedure Tfilebuffer.FormCreate(Sender: TObject);
    begin
    stringgrid1.Cells[0,0]:='Наименование';
    stringgrid1.Cells[1,0]:='Значение';
    stringgrid2.Cells[0,0]:='№';
    stringgrid2.Cells[1,0]:='Наименование мероприятия';
    stringgrid2.Cells[2,0]:='Начало';
    stringgrid2.Cells[3,0]:='Конец';
    stringgrid3.Cells[0,0]:='Сумма';
    
    end;
    
    
    
    procedure Tfilebuffer.FormActivate(Sender: TObject);
    var mm:Integer;
    begin
    if filebuffer.stringgrid1.Cells[0,1]<>'' then
    begin
    i:=0;
    o:=1;
      txt:='';
      txt2:=0;
      fff:='';
      ii:='';
      ll:='';
      nn:='';
    
     begin
        AssignFile(F,filebuffer.stringgrid1.Cells[1,1]);
        Reset(F);
         while not Eof(F) do
          begin
    
          Readln(F,S);
            stringgrid2.Cells[i,o]:=S;
            i:=i+1;
            if i=4 then
            begin
            i:=0;
            o:=o+1;
            end;
            if S='' then
            i:=i-1;
             end;
            CloseFile(F);
            filebuffer.Stringgrid2.RowCount:=o+1;
            filebuffer.StringGrid2.Cells[i,o]:=filebuffer.stringgrid2.Cells[1,1];
            filebuffer.StringGrid2.Cells[i+1,o]:=filebuffer.stringgrid2.Cells[2,1];
            filebuffer.StringGrid2.Cells[i+2,o]:=filebuffer.stringgrid2.Cells[3,1];
            end;
        end;
        
    stringgrid3.rowcount:=stringgrid2.rowcount;
    for mm:=1 to stringgrid3.rowcount do
    if stringgrid2.Cells[2,mm]<>'' then
    begin
    ii:=stringgrid2.Cells[2,mm];
    nn:=ii[1]+ii[2];
    ll:=ii[4]+ii[5];
    stringgrid3.Cells[0,mm]:=inttostr(strtoint(nn)*60+strtoint(ll));
    
    end;
    end;
    
    procedure Tfilebuffer.Timer1Timer(Sender: TObject);
    begin
    progressbar1.Position:=progressbar1.Position+20;
    if progressbar1.Position>=100 then
    filebuffer.Visible:=false;
    end;
    
    end.
    вот кусок кода. если надо что-то еще, пиши
     
  2. MicRaiS

    MicRaiS New Member

    Joined:
    30 Dec 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    есль масив с(n) n<=1000 типа char . Разработать програму, каторая находить и пичатает в лексикографическом порядке: усе большие латинськие букви, что есть в масиве ; все вбальшие латинские букви, каторих нет в масиве ; все цифри, каторие есть в масиве ; все цифри, каторие есть в масиве і повторяютса
     
  3. Mercial

    Mercial New Member

    Joined:
    18 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    -3
    Помогите пожалуйста с задачей на pascal.
    Преобразовать массив B(31) таким образом,что-бы сначала располагались все элементы равные 1,а потом - все остальные.
    Примерно будет так
    Code:
    Program pr1;
    uses crt;
    var i:integer;
         a,b:array[1..31] of integer;
    begin
    clrscr;
    randomize;
    for i:=1 to 31 do
    begin
    B[i]:=random (51)-20;
    write (B[i]:5);
    end;
    end.
    А вот дальше не знаю как.
     
    #3283 Mercial, 16 Feb 2011
    Last edited: 17 Feb 2011
  4. dos999

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

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    с чем конкретно у тебя трудности?
     
  5. vinni18

    vinni18 New Member

    Joined:
    16 Feb 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Задачи на C++

    Здравствуйте, помогите пожалуйста с 2-мя заданиями (сам больше понимаю в Delphi, и пишу курсач по нему. Поэтому на С++ почти нет времени)

    Вот собственно и задания:
    1. Даны действительные числа a0...a6 . Вычислить значение выражения p(x+1)-p(x) , где p(y)=a6y6+a5y5+...a0 . Вычисление p(y) оформить функцией. (Примечание - p(y) и p(x) это посути одно и то же
    2. Написать перегруженную функцию, которая проверит, является ли число N простым числом.

    Заранее благодарен
     
  6. Mercial

    Mercial New Member

    Joined:
    18 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    -3
    Надо через второй массив сделать вывод первых цифр равных единице,а потом все остальные,именно с этим и трудности,первый массив сформирован,а второй если сформировываю то вывести сначала единицы не получается.
     
  7. rid3r~man

    rid3r~man Active Member

    Joined:
    10 Jan 2009
    Messages:
    224
    Likes Received:
    223
    Reputations:
    25
    Помогите плз, задание на С
    дан txt:
    надо забить массив значениями из 7ой строки
    т.е. чтоб было
    A[1]=6
    A[2]=7
    ....

    как считать числа, разделенные запятыми, с определенной строки в файле?
    подскажите функию, через кот. можно реализовать подобное, сам подумаю еще... :confused:
     
    #3287 rid3r~man, 17 Feb 2011
    Last edited: 17 Feb 2011
  8. kosmo987

    kosmo987 Member

    Joined:
    28 Apr 2010
    Messages:
    0
    Likes Received:
    6
    Reputations:
    1
    если у тебя конкретно такой файл,
    то считываешь его построчно,смотришь,если длина строки больше 1,значит это нужная 7 строка.
    берешь ее и через функцию сплит загоняешь в массив.
    типа так

    string s = "1,2,3,4,5,6";
    string[] q = s.Split(',');
     
    1 person likes this.
  9. Paha007

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

    Joined:
    2 Mar 2008
    Messages:
    90
    Likes Received:
    115
    Reputations:
    1
    Помогите запилить лабу...
    на С++

    вот код проги


    Нужно запилить точно такую же прогу только используя функцию ...
    Заранее спасибо
     
  10. NTFF

    NTFF New Member

    Joined:
    9 Dec 2009
    Messages:
    23
    Likes Received:
    0
    Reputations:
    0
    Помогите реализировать функцию бинарного поиска и функцию сортировки (любым методом)

    вот основной текст программы который есть, писал пока понимал, а дальше все не знаю.....
    здесь можно скачать Unit1.cpp


    #include <iostream.h> //подключение библиотеки ввода/вывода
    #include <conio.h> // подключение библиотеки для обработки экрана
    #include <iomanip.h> // подключение библиотеки манипуляторов для форматированного вывода

    const size = 30; //максимальное количество элементов в массиве

    /*Функция ввода массива с клавиатуры.
    Вх.данные:
    mas - массив (не задан);
    n - количество элементов в массиве (не задано)
    Вых.данные:
    mas - массив задан;
    n - количество элементов в массиве (от 1 до size-1)
    Способ передачи параметров:
    Массив передается с помощью указателя на нулевой элемент массива.
    n передается по ссылке.
    */
    void vvod(float *mas, int &n)
    { //цикл ввода количества элементов массива
    do
    {
    cout<<"Enter quantity of elements of array ->";
    cin>>n;
    }while((n<=0)||(n>=size)) ;

    //ввод элементов массива с клавиатуры
    for (int i=0;i<n;i++)
    {
    cout<<"#"<<i<<" = "; //вывод индекса элемента, который вводится с клавиатуры
    cin>>mas; //ввод i-го элемента массива с клавиатуры
    }
    }

    /*Функция печати массива.
    Вх.данные:
    mas - массив;
    n - количество элементов в массиве (от 1 до size-1)
    Способ передачи параметров:
    Массив передается с помощью указателя на нулевой элемент массива.
    n передается по значению.
    */
    void print(float *mas, int n)
    {
    for(int i=0;i<n;i++)
    cout<<setprecision(2)<<setw(10)<<mas; //два знака после запятой,
    //для одного числа выделяется 10 позиций на экране
    }

    /*Функция поиска индекса минимального элемента массива.
    Вх.данные:
    mas - массив;
    n - количество элементов в массиве (от 1 до size-1)
    Вых.данные:
    Индекс минимального элемента массива */
    int min(float *mas, int n)
    { int imin = 0; //пусть элемент с номером 0 будет минимальным
    for(int i=1;i<n;i++) //цикл просмотра элементов массива от 1 до n-1
    if (mas<mas[imin]) imin = i; //поиск минимального из двух чисел
    return imin; //возврат индекса минимального элемента массива
    }

    /*Функция поиска индекса максимального элемента массива.
    Вх.данные:
    mas - массив;
    n - количество элементов в массиве (от 1 до size-1)
    Вых.данные:
    Индекс максимального элемента массива*/
    int max(float *mas, int n)
    { int imax = 0; //пусть элемент с номером 0 будет максимальным
    for(int i=1;i<n;i++) //цикл просмотра элементов массива от 1 до n-1
    if (mas>mas[imax]) imax = i; //поиск максимального из двух чисел
    return imax; //возврат индекса максимального элемента массива
    }




    /*Функция для вывода меню на экран и выбора одного из пунктов меню.
    Вых.данные: номер пункта меню от 1 до 4*/ int menu()
    { int number; //номер выбранного пункта меню
    do //цикл выполняется пока пользователь не выберет пункт от 1 до 4
    {
    clrscr();
    cout<<" MENU\n";
    cout<<"1. Input array please,\n";
    cout<<"2. Print array\n";
    cout<<"3. Processing array\n";
    cout<<"4. Exit\n";
    cout<<"\nSelect menu item -> ";
    cin>>number;
    }while ((number<1) || (number>4));
    return number; //возврат номера пункта меню
    }

    void main() //главная функция программы
    {
    float a[size]; //массив
    int m; //количество элементов в массиве
    int punkt; //номер пункта меню
    int isvvod=0; //признак, что массив задан: isvvod=0 - массив не задан, isvvod=1 - массив задан

    //цикл выполняется пока пользователь не выберет пункт "Выход"
    do
    { punkt = menu(); //выбор пункта меню
    switch (punkt) //выполнение действий в зависимости от номер пункта меню
    {
    case 1: //пункт 1 "Ввод массива"
    {
    clrscr();
    cout<<" --= Input array =--\n";
    vvod(a,m); //вызов функции для задания размера и элементов массива
    isvvod=1; //признак, что массив задан
    };break;
    case 2: //пункт 2 "Печать массива"
    {
    if (isvvod) //если массив задан, то его можно распечатать
    {
    clrscr();
    cout<<" --= Print array =--\n";
    print(a,m); //вызов функции для печати массива
    }
    else //массив не задан, необходимо сначала задать массив
    cout <<"It's necessary to set array at first. Select point 1.";
    getch(); //задержка экрана до нажатия клавиши
    };break;
    case 3: //пункт 3 "Обработка массива"
    {
    if (isvvod) //если массив задан, то его можно распечатать
    {
    clrscr();
    cout<<" --= Processing array... =--\n";
    int imin = min(a,m); //вызов функции для определения номера мин.элемента
    int imax = max(a,m); //вызов функции для определения номера макс.элемента
    cout<<setprecision(2)<<"Minimum element = "<<a[imin]<<"\n";
    cout<<setprecision(2)<<"Maximu element = "<<a[imax]<<"\n";
    cout<<"Index of the minimum element = "<<imin<<"\n";
    cout<<"Index of the maximum element = "<<imax<<"\n";
    cout<<setprecision(2)<<"The total of minimum and maximum values= "<<a[imin]+a[imax];
    cout<<"\nArray\n";
    print(a,m); //вызов функции для печати массива
    }
    else //массив не задан, необходимо сначала задать массив
    cout <<"It's necessary to set array at first. Select point 1.";
    getch(); //задержка экрана до нажатия клавиши
    };break;
    };

    }while(punkt!=4); //цикл выполняется пока не выбран пункт 4 "Выход"
    }
     
  11. Vollkorn

    Vollkorn Member

    Joined:
    6 Nov 2010
    Messages:
    86
    Likes Received:
    15
    Reputations:
    -6
    Не понял, какую функцию? Что она должна делать?
     
  12. Alv

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

    Joined:
    30 Jan 2007
    Messages:
    0
    Likes Received:
    20
    Reputations:
    2
    С++. Итераторы и тп. За помощь вознаграждение.

    1.Найти количество локальных максимумов в последовательности с помощью for_each.
    2.Сделайте filtered_ostream_iterator, выводящий в поток символов только английские буквы.
    3.В стандартной библиотеке есть класс valarray. В заданиях требуется воспроизвести некую его функциональность. Для этого следует реализовать свой класс valarray (только то, что необходимо), а также необходимые дополнительные классы.
    Реализовать класс index так чтобы следующий код
    valarray v(10),v1(10);
    index ind(10); // индексный массив, хранит перестановку
    v[ind] = v1;
    осуществлял присваивание v[ind] = v1

    Вознаграждение: голоса в соц сети ВКонтакте.

    задание: 1 (надо убрать глобальную переменную)
    Code:
    #include <iostream>
    #include <vector>
    #include <list>
    #include "general_container.h"
    #include "local_max.h"
    
    using std::cout;
    using std::endl;
    using std::vector;
    using std::list;
    
    typedef int int_arr[20];
    
    int main(){
    	int_arr arrs[] = {
    		{1},
    		{3, 3, 3},
    		{5, 9},
    		{35, -4},
    		{4, -26, 2, 2, 8, 4, 1},
    		{-6, -10, -28,  -28, 5, 32, 32, 20, 57, 16, 8, -3, 11, -4, 46, 24}
    	};
    	int SIZES[] = {1, 3, 2, 2, 7, 16};
    
    	vector<int> vec0(arrs[0], arrs[0] + SIZES[0]);
    	vector<int> vec1(arrs[1], arrs[1] + SIZES[1]);
    	vector<int> vec2(arrs[2], arrs[2] + SIZES[2]);
    	vector<int> vec3(arrs[3], arrs[3] + SIZES[3]);
    	vector<int> vec4(arrs[4], arrs[4] + SIZES[4]);
    	vector<int> vec5(arrs[5], arrs[5] + SIZES[5]);
    
    	cout << "VECTOR\n\n";
    	println(vec0.begin(), vec0.end());
    	cout << "local max count = " << local_max_count(vec0, MIN_INT) << endl << endl;
    	println(vec1.begin(), vec1.end());
    	cout << "local max count = " << local_max_count(vec1, MIN_INT) << endl << endl;
    	println(vec2.begin(), vec2.end());
    	cout << "local max count = " << local_max_count(vec2, MIN_INT) << endl << endl;
    	println(vec3.begin(), vec3.end());
    	cout << "local max count = " << local_max_count(vec3, MIN_INT) << endl << endl;
    	println(vec4.begin(), vec4.end());
    	cout << "local max count = " << local_max_count(vec4, MIN_INT) << endl << endl;
    	println(vec5.begin(), vec5.end());
    	cout << "local max count = " << local_max_count(vec5, MIN_INT) << endl << endl;
    
    	system("pause");
    	return 0;
    }
    Code:
    #ifndef LOCAL_MAX_H
    #define LOCAL_MAX_H
    
    /*	
    	Найти количество локальных максимумов в последовательности с помощью for_each. 
    */
    
    #include <algorithm>
    
    using namespace std;
    
    // Минимальное число
    const int MIN_INT = -10000000;
    int GlobalCount;
    
    // Поиск локальных максимумов
    template <typename T>
    class local_max_counter{
    private:
    	// Число локальных макисмумов
    	int cnt;
    	// Элемент, через один раньше текущего
    	typename T::value_type prevPrev;
    	// Элемент, предшествующий текущему
    	typename T::value_type prev;
    
    public:
    	local_max_counter(typename T::value_type minValue){ 
    		cnt = 0; 
    		prevPrev = minValue; 
    		prev = minValue;
    	}
    	
    	// Возвращает число локальных максимумов
    	int LocalMaxCount(){
    		return cnt;
    	}
    
    	// Ищет локальный максимум
    	void local_max(typename T::value_type curr){
    		if (prev < curr)
    			if (prevPrev >= prev)			/* делаем предположение, что раз 7 4 9, то
    											   9 это локальный максимум */
    				++cnt;
    			else							/* у нас 3 6 15, на предыдущем шаге было сделано предположение,
    											   что 6 это лок. макс. - неверное, но зато 15 новый лок. максимум, возможно */
    				;
    		else if (curr == prev && prevPrev < prev)	/* у нас 3 6 6, на предыдущем шаге было сделано предположение,
    													   что 6 это лок. макс. - неверное */
    				--cnt;
    		prevPrev = prev;
    		prev = curr;
    	}
    
    	void operator() (typename T::value_type curr){
    		local_max(curr);
    		GlobalCount = cnt;
    	}
    };
    
    template <typename T>
    int local_max_count(T container, typename T::value_type minValue){
    	local_max_counter<T> cnter(minValue);
    	//cnter(1);
    	GlobalCount = 0;
    	for_each(container.begin(), container.end(), cnter);
    	return GlobalCount;
    	//return cnter.LocalMaxCount();
    }
    
    #endif
    Code:
    #ifndef GENERAL_CONTAINER_H
    #define GENERAL_CONTAINER_H
    
    #include <iostream>
    #include <string>
    
    using std::cout;
    using std::endl;
    using std::string;
    
    template <typename FwdIt>
    void println(FwdIt first, FwdIt last, string delim = " "){
    	FwdIt curr = first;
    	while (curr != last){
    		cout << *curr << delim;
    		++curr;
    	}
    	cout << endl;
    }
    
    
    #endif
     
  13. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Желательно графически. С меня плюсы!
     
  14. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Язык реализации?
     
  15. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Delphi, там с множествами связано задание.
     
  16. M1ks

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

    Joined:
    23 Aug 2007
    Messages:
    140
    Likes Received:
    9
    Reputations:
    0
    Текущее показание электронных часов: m ч (о<=m<=23) n мин (0<=n<=59) k секунд (0<=k<=59). Какое время будут показывать часы через p часов q минут r секунд?
    На паскале, кто сделает ? =) заранее спасибо )
     
  17. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    вводим данные n,m.k
    вводим на сколько меняется p,q,r

    k:=k+r;
    if k>59 then
    begin
    inc(n);
    k:=k-60;
    end;
    n:=n+q;
    if n>59 then
    begin
    inc(m);
    n:=n-60;
    end;
    m:=m+p;
    if p>23 then p:=p-24;

    Выводим результат в виде m,n,k
     
    1 person likes this.
  18. rid3r~man

    rid3r~man Active Member

    Joined:
    10 Jan 2009
    Messages:
    224
    Likes Received:
    223
    Reputations:
    25
    kosmo987 спасибо, помог.

    И еще вопрос, как вывести тхт на печать в usb принтер на С?
     
  19. JoeBlanc

    JoeBlanc New Member

    Joined:
    29 Oct 2010
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Помогите решить на языке Си.
    Дано текстовый файл, элементами которого являются действительные числа a1, a2, a3, ..., an. Создать файл, элементами которого будут числа a1(в квадрате), a1*a2, a1*a3, a1*a4, ..., a1*an.


    *-умножение!
     
  20. zoja1990

    zoja1990 New Member

    Joined:
    24 Feb 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    задача с символами строк на java

    Помогите решить на java : сколько в символьной строке слов, имеющие в первом слове средний символ(символ который находится в середине первого слова) ,например набираем слова (тетрадь; книга; ручка;цветок в середине первого слова буква (р), так вычислить сколько слов в строке, имеют букву (р), т к у нас в середине первого слова символ (р)только (тетрадь и ручка)
     
Thread Status:
Not open for further replies.