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

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

Thread Status:
Not open for further replies.
  1. winlogon.exe

    winlogon.exe Active Member

    Joined:
    5 Jun 2009
    Messages:
    31
    Likes Received:
    129
    Reputations:
    13
    Блин.. я уже сдлал все а ты исправил..(( Напиши мне в аську.. отблагодарю чем нить :D
     
    4 people like this.
  2. krewger

    krewger Banned

    Joined:
    24 Oct 2008
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    Ребят мне нужно написать прогу на C++. Программа должна объеденять два упорядоченных по возрастанию массива в один, также упорядоченный по возрастанию!(первый и второй массив заполняются с клавиатуры)

    Например:

    x[]={1,2,3}
    y[]={4,5,6}

    z-массив должен получиться после склеивания {1,2,3,4,5,6}
     
  3. Mozy

    Mozy Member

    Joined:
    15 Mar 2009
    Messages:
    52
    Likes Received:
    34
    Reputations:
    6
    2 krewger
    Code:
    #include <iostream> //библиотека потокового ввода/вывода   
    #include <conio.h> //нужно для использования getch()
    using namespace std;//для работы iostream нам нужно выбрать пространство имён std
    
    int main(){
        int i,j,a,b,p;
        
        cout << "BBeguTE pa3Mep MACCuBA X"<<endl;
        cin >> a;
        cout << "BBeguTE pa3Mep MACCuBA Y"<<endl;
        cin >> b;
        
        int X[a];
        int Y[b];
        int Z[a+b];    
        
        cout << "BBeguTE E/|EMEHTb| MACCuBA X"<<endl;
        for(i=0;i<a;i++){
        cin >> X[i];}    
        
        cout << "BBeguTE E/|EMEHTb| MACCuBA Y"<<endl;
        for(i=0;i<b;i++){
        cin >> Y[i];}  
        
        //Вносим элементы массивов Х и Y в массив Z
        for(i=0;i<a;i++){
        Z[i]=X[i];}
        for(i=0;i<b;i++){
        Z[i+a]=Y[i];}
        
        //Сортируем массив Z пузырьковым методом (см.Пузырьковая сортировка)
        for(j=0;j<(a+b);j++){
            for(i=0;i<(a+b);i++){
                if(Z[i]>Z[i+1]){
                 p=Z[i];
                 Z[i]=Z[i+1];
                 Z[i+1]=p;
                 }
            }
        }
        
        //Выводим получившийся массив на экран
        for(i=0;i<(a+b);i++){
        cout << Z[i] << " ";}
    
    getch();//Ожидание нажатия любой клавиши
    return 0;
    }
    
    П.С. Метод пузырьковой сортировки самый простейший (не оптимизированный)
     
  4. regau

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

    Joined:
    7 Jun 2009
    Messages:
    0
    Likes Received:
    36
    Reputations:
    16
    Ассемблер Для ДОС
    1. Разработать программу реализующую указанную формулу, исполнить программу с несколькими ( три - четыре) наборами исходных данных, проверить правильность результатов.
    Х= 3(А - 2В) +50 – С / 2
    2. Найти наименьшее среди положительных чисел. Массив слов.
    3. Дан массив из 6 байт. Посчитать количество байт, число единиц в которых не превышает 3.
    4. Ввести с клавиатуры строку. Преобразовать все буквы в числа. По-строить криптограмму (вместо букв вывести на экран соответствующие им числа).
    5. Разработать подпрограмму, которая преобразует заданное десятичное число в двоичную систему. Разработать программу, которая вводит с клавиатуры строку десятичных цифр и выводит на экран её эквивалент в двоичной системе. Если строка не является числом, то сообщает об этом.

    Сам знаю что ничего сложного, но блин срочная командировка в Москву((
     
    #1744 regau, 17 Oct 2009
    Last edited: 17 Oct 2009
  5. sim32

    sim32 New Member

    Joined:
    14 Oct 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    -5
    C++

    нужна программа для перевода в разные системы счисления - десятиричная, двоичная, шестнадцатиричная. кто-нибудь поможет?
     
  6. Mozy

    Mozy Member

    Joined:
    15 Mar 2009
    Messages:
    52
    Likes Received:
    34
    Reputations:
    6
    Держи
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <string.h>
    #pragma hdrstop
    
    //------------------------------------------------
    #pragma argsused
    
    int CharToInt(char alpha)
    {
      if(alpha<58 )
        return alpha - 48;
      else
        return alpha - 55;
    }
    
    int ConvertToDec(char *input , int sinp )
    {
      int sum = 0;
      int pow = 1;
      for(int i = strlen(input)-1; i>=0; i--)
      {
        sum+=CharToInt(input[i]) * pow;
        pow*=sinp;
      }
      return sum ;
    }
    
    char *convertX(int input, int sout, char *out)
    {
      while(input!=0)
      {
        double j = input%sout;
        input/=sout;
        out--;
        if(j<10)
          *out = 48 + j;
        else
          *out = 55 + j;
      }
      return out;
    }
    
    int main(int argc, char* argv[])
    {
      printf("Vvedite iszhodnoe chislo: " );
      char input[32] = "";
      scanf("%s", &input);
    
      printf("\nVvedite nachalnuiu codirovku: ");
      int sinp;
      scanf("%i", &sinp);
    
      printf("\nVvedite conechnuiu codirovku: ");
      int sout;
      scanf("%i", &sout);
    
      printf("\n\n= ");
    
      char output[32];
      output[31] = 0;
      printf("%s", convertX(ConvertToDec(input, sinp), sout, output+31));
    
      printf("\n\nNazsmite ljubuju klavisu...");
      getch();
      return 0;
    }
    
    
    Переводит из любой системы счисления в любую,
    даже больше 16ичной(начинают использоваться буквы G H I и т.д. )
    Сначала вводим число,затем его начальную систему счисления,затем в какую надо перевести.
     
    #1746 Mozy, 17 Oct 2009
    Last edited: 17 Oct 2009
    1 person likes this.
  7. jecka3000

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

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    нужно написать программу на си шарпе:
    Вывести на экран все натуральные числа из диапазона от A до B, сумма цифр которых равна S. При отсутствии чисел с указанными свойствами выдать на экран сообщение “Требуемых чисел нет”. Границы диапазона A и B и заданную сумму цифр S ввести с клавиатуры

    Знаю, что не очень сложная...но всё же...))
     
  8. jecka3000

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

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    задача все еще актуальна....)
     
  9. Syntaxys

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

    Joined:
    2 Sep 2007
    Messages:
    61
    Likes Received:
    10
    Reputations:
    0
    Имеется программа:
    Code:
    Program TitanovieIaica;
    Var chislo,i,vivod,number,delit,kolvo:integer;
    Begin
    vivod:=0; //вывод целого числа, показывающего номера полож членов послед
    i:=1; //счетчег
    delit:=1; //делитель для разбиения числа
    kolvo:=1; //переменная для счетчика цифр
    repeat //цикл для ввода цифр последовательности
    writeln('Vvedite chislo posledovatelnosti:');
    readln(chislo); //вводим число
    if chislo>0 then //проверка - положительное ли число, если да, то
    Begin
    vivod:=vivod*10+i; //тут формируем число ,В котором каждая циыра - номер положительного члена последов.
    End;
    i:=i+1; //этим счетчиком определяется номер полож. члена в последов.
    until chislo=0; //если член последов = 0, то завершаем ввод
    if vivod>10 then //если чисел было больше чем 1, то
    Begin
    number:=vivod; //присваиваем переменной для подсчета кол-ва цифр знач. числа с номерами членов
    while number>10 do //пока число >10 выполняем:
    Begin
    number:=number div number; //целочисленное деление на 10
    kolvo:=kolvo+1; //подсчет количества цифр
    end;
    repeat
    delit:=delit*10; //считаем первый делитель
    kolvo:=kolvo-1;
    until kolvo=1;
    End
    else writeln('Nomer posledovatelnosti:',vivod);// если число было1, то выводим его
    while vivod>10 do //тут разбиваем число с нормерами членов последовательности на цифры если оно больше 10
    begin
    [COLOR=Blue]write(vivod div delit, ' ');//выводим член последовательности
    vivod:=vivod mod delit; //убираем из числа выведенную цифру
    delit:=delit div 10; //убираем из делителя 0
    end;
    write(vivod); //выводим последнюю цифру числа[/COLOR]
    END.
    
    Результат:
    Code:
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    2
    Vvedite chislo posledovatelnosti:
    0
    [COLOR=Blue]1234 5[/COLOR]
    
    Как сделать не используя стринги, чтобы отображалось так:

    Результат:
    Code:
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    12
    Vvedite chislo posledovatelnosti:
    2
    Vvedite chislo posledovatelnosti:
    0
    [COLOR=Blue]1 2 3 4 5[/COLOR]
    

    :confused:
     
  10. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Нужна помощь!

    Задачка на Turbo Pascale помогите осилить.
    Задание:
    Разработать программу табулирования функций для произвольного диапазона изменения независимого параметра или аргумента.Выполнить расчет для использованных исходных значенийж: х=1-2*cos(a*y)+ln(y), a=log2(y),y є [П;2*П] ∆y=П/4
    Результаты вывести в следующем виде:
    Значение аргумента,значение вспомагательной функции и результата.
    В программу включить ввод исходных данных и проверку диапазона от -100 до 100.Начальное значение меньше конечного, шаг разности от начального и конечного.
     
  11. sebay

    sebay Member

    Joined:
    9 Mar 2009
    Messages:
    26
    Likes Received:
    22
    Reputations:
    0
    Прошу помогите с двумя лабами!

    2. Список.

    НОВЫЕ ПОНЯТИЯ: шаблон, понятие итератора.

    Реализовать динамический список элементов типа T (T -- параметр).

    Реализовать:

    [на "тройку"] минимальный набор:

    операции вставки элемента в начало и конец списка; удаления первого и последнего элемента; деструктор, освобождающий всю выделенную память; запретить использование конструктора копирования и оператора присваивания.

    [на "четвёрку"] возможность перебора элементов:

    класс-итератор, перебирающий элементы списка при вызове оператора ++

    [на "пятёрку"] копирование списков:

    корректно работающие конструктор копирования и оператор присваивания.


    -----------------------------------------------------------------------------

    3. Символьное дифференцирование.

    НОВЫЕ ПОНЯТИЯ: наследование, виртуальные методы.

    [на "тройку"]

    Реализовать абстрактный класс Expression с чисто виртуальными методами Expression *diff(); void print(); реализовать классы Number, Variable, Add (сумма), Sub (разность) с реализациями операции diff (дифференцирование) и print (печать на экран).

    Пример:

    Expression *e = new Add(new Number(1), new Variable('x'));
    e->print();
    std::cout << "\n";
    Expression *de = e->diff();
    de->print();
    std::cout << "\n";
    delete e;
    delete ed;

    [на "четвёрку"]

    Реализовать классы Mul (произведение), Div (частное), при желании функции типа Sin, Cos и т.п.

    [на "пятёрку"]

    Реализовать чтение выражения из строки с автоматическим созданием необходимых объектов.
    Пример:

    Expression *e = read_expression("(x+1)*x");
     
  12. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Помогите разобраться плиз, а то постоянно ошибки выдает и если второе условие не выполняется то должно выводится соответствующее сообщение:
    program primer;
    var
    f,x:real;
    begin
    writeln('Vvedite luboe chislo');
    writeln('x=');
    readln(x);
    if x > 0 then
    begin
    f := exp (3*ln(x)) / sqrt(3) - exp (x) * abs (ln (exp (3*ln(1,37)))) + exp(3*ln(x)) + 4/3;
    writeln ('f=',f);
    end;
    if x < = 0 then
    begin
    writeln ('else');
    f := ( exp (3*ln(x))) + sqrt (7)) / cos (x - 2 * Pi) - abs ( ln (exp (3*ln(x)))) + 4 * (sin(x)/cos(x));
    writeln ('f=',f);
    writeln ('Uslovie ne vipolnaetsa');
    end;
    readln;
    end.
     
  13. AquaKlaster

    AquaKlaster Active Member

    Joined:
    9 Mar 2009
    Messages:
    0
    Likes Received:
    204
    Reputations:
    23
    Вот попробуй так:
    Code:
    program primer;
    var
    f,x:real;
    begin
    writeln('Vvedite luboe chislo');
    writeln('x=');
    readln(x);
    if x > 0 then
    begin
    f := exp (3*ln(x)) / sqrt(3) - exp (x) * abs (ln (exp (3*ln(1.37)))) + exp(3*ln(x)) + (4/3);
    writeln ('f=',f);
    end;
    if x <= 0 then
    begin
    writeln ('else');
    f := ( exp (3*ln(x))) + sqrt (7) / cos (x - 2 * Pi) - abs ( ln (exp (3*ln(x)))) + 4 * (sin(x)/cos(x));
    writeln ('f=',f);
    writeln ('Uslovie ne vipolnaetsa');
    end;
    readln;
    end.
    Нужны было подправить несколько логических ошибок
     
  14. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Все так только нужно чтобы при вводе о или какого нибудь отрицательнного числа ошибка невыскакивала.А появлялось сообщение что условие невыполняется!
     
  15. AquaKlaster

    AquaKlaster Active Member

    Joined:
    9 Mar 2009
    Messages:
    0
    Likes Received:
    204
    Reputations:
    23
    По гугли на тему ошибки Invalid Floating Point Operation
     
  16. >>serhio<<

    >>serhio<< New Member

    Joined:
    10 Feb 2009
    Messages:
    40
    Likes Received:
    0
    Reputations:
    0
    Нужно реализовать на Pascale. Найти сумму всех чисел из промежутка а и b кратных из 13 и 5 .
     
  17. ichechen

    ichechen New Member

    Joined:
    16 Oct 2009
    Messages:
    33
    Likes Received:
    4
    Reputations:
    8
    Я на Паскале не "бум-бум", но вроде бы так:
    Code:
    program atob;
    uses CRT; 
    var a,b,n1,n2,i,sum:integer;
    begin clrscr; 
    writeln('Vvedite chislo a '); 
    readln(a); 
    writeln('Vvedite chislo b '); 
    readln(b); 
    n1:=13; n2:=5; 
    for i:=a to b do
    begin if ((i mod n1)=0) AND ((i mod n2)=0) Then 
    sum:=sum+i; 
    end; 
    writeln('summa ravna => ' , sum); 
    readln(i); 
    end.
     
  18. jecka3000

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

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    Вывести на экран все натуральные трехзначные и пятизначные числа из диапазона от A до B, значение которых кратно 13. При отсутствии чисел с указанными свойствами выдать на экран сообщение “Требуемых чисел нет”. Границы диапазона A и B ввести с клавиатуры.

    язык - си шарп.
    Буду очень благодарен
     
  19. jecka3000

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

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    вот мой код, но он очень странно пашет, постоянно выводит 1000

    Code:
     int a, b, tr, pt,ost1,ost2,ml,st;
                Console.WriteLine("Введите начало диапа,а");
                a = int.Parse(Console.ReadLine());
                Console.WriteLine("Введите конец диапазона,в");
                b = int.Parse(Console.ReadLine());
                
                for (a = a; a <= b; a++)
                    for( ml=1;ml<=9;ml++)
                        for (st = 0; st <= 9; b++)
                        {
                            tr = 100 * ml + st;
                            pt = 10000 * ml + st;
                            ost1 = tr % 13;
                            ost2 = pt % 13;
                            if (ost1 == 0)
                                if (ost2 == 0)
                                    Console.WriteLine(tr);
                            Console.WriteLine(pt);
                            else
                            Console.WriteLine("таких чисел нет"!);
    
                        }
                Console.ReadLine();
    парни, срочно, помогите!)
     
    #1759 jecka3000, 19 Oct 2009
    Last edited: 19 Oct 2009
  20. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    Code:
    class Program
        {
            static void Main(string[] args)
            {
                int k = 0;
    
                Console.WriteLine("Minimum: ");
                int a = int.Parse(Console.ReadLine());
                
                Console.WriteLine("Maximum: ");
                int b = int.Parse(Console.ReadLine());
    
    
                if (a <= b)
                {
                    for (int i = a; i <= b; i++)
                    {
                        if ((i % 13 == 0) && ((i>=100 && i<=999) || (i>=10000 && i<=99999)))
                        {
                            Console.WriteLine(i);
                            k++;
                            
                        }
                    }
                    if (k < 1)
                    {
                        Console.WriteLine("No recuired Numbers");
                    }
                }
                else Console.WriteLine("Minimum is bigger then Maximum");
                Console.ReadLine();
    
            }
        }
    }
     
    #1760 BrainDeaD, 19 Oct 2009
    Last edited: 19 Oct 2009
    1 person likes this.
Thread Status:
Not open for further replies.