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

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

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

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

    Joined:
    21 Sep 2008
    Messages:
    179
    Likes Received:
    46
    Reputations:
    16
    [​IMG]

    прошу пояснить по человечески чего от меня хотят :D
    накодить смогу если четко пойму ТЗ (TP/Delphi)
     
  2. frostJKE

    frostJKE New Member

    Joined:
    15 May 2008
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Пожалуйста помогите сделать лабораторную работу.
    Вот задание:
    Получение общих сведений о процессоре и подключенных периферийных устройствах.

    1. Цель работы

    1.Определить наличие и получить общие сведения о подключенных периферийных устройствах в IBM PC AT-совместимой ПЭВМ.
    2. Идентифицировать процессор.

    2. Задание.

    Разработать программу, получающую от системы имеющиеся сведения об установленном процессоре, под-ключенных периферийных устройствах и их общих пара-метрах.
    Программа должна выполнять следующие обязатель-ные действия:
    а) определение имени изготовителя, даты и версии системной BIOS;
    б) определение наличия накопителей на гибких маг-нитных дисках (НГМД), их тип и количество;
    в) определение типа процессора и его конфигурации;
    г) отображение на экране и запись в файл полученных сведений.

    Написать нужно в программе Builder C++ , но на языке ассемблер, но можно на чистом ассемблере(только еще небольшая просьба, пожалуйста с комментариями... а то я не разберусь в коде...)

    Буду очень признателен за вашу помощь...
     
  3. pixelm

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

    Joined:
    4 Jan 2008
    Messages:
    26
    Likes Received:
    6
    Reputations:
    0
    Привет, делаю курсовик по программированию на C.
    Нужна помощь.

    Общее меню программы с функциями.


    Code:
    #include <stdio.h>
    void sozdanie();
    void dobavlenie();
    void udalenie();
    void korrektirovka();
    void prosmotr();
    void sortirovka();
    void vivod();
    void vihod();
    
    void main(void)
        {
         char ch,v;
         do {
    	 printf("1. Sozdanie \n");
    	 printf("2. Dobavlenie \n");
    	 printf("3. Udalenie \n");
    	 printf("4. Korrektirovka \n");
    	 printf("5. Prosmotr \n");
    	 printf("6. Sortirovka \n");
    	 printf("7. Vivod \n");
    	 printf("8. Vihod \n");
    
    	 printf("Vvedite nomer komandi: \n");
    
    	 ch=getchar();
    	 v=getchar();
    
    	 switch (ch)
    		{
    		 case '1': sozdanie();break;
    		 case '2': dobavlenie();break;
    		 case '3': udalenie();break;
    		 case '4': korrektirovka();break;
    		 case '5': prosmotr();break;
    		 case '6': sortirovka();break;
    		 case '7': vivod();break;
    		 }
    	 } while ((ch)='1' && ch<='7');
    }
    void sozdanie()
    {
    printf ("Sozdanie faila \n");
    }
    void dobavlenie()
    {
    printf ("Dobavlenie faila \n");
    }
    void udalenie()
    {
    printf ("Udalenie faila \n");
    }
    void korrektirovka()
    {
    printf ("Korrektirovka faila \n");
    }
    void prosmotr()
    {
    printf ("Prosmotr faila \n");
    }
    void sortirovka()
    {
    printf ("Sortirovka faila \n");
    }
    void vivod()
    {
    printf ("Vivod faila \n");
    }
    void vihod()
    {
    printf ("Vihod \n");
    }
    Вместо printf ("Sozdanie faila \n"); printf ("Dobavlenie faila \n"); и т.д. буду вставлять функции.

    Написал первую функцию


    Нужно создать файл, где будет содержаться:
    Название пункта назначения
    Номер поезда
    Время отправления

    Code:
    void sozdanie()
    {struct poezd
    {
    char punkt[15];
    int nomer;
    int chas;
    int minuta;
    }; train;
    FILE*f;
    int i;
    f=fopen ("test","w");
    if(ferror(f)) perror("oshibca");
    else{for(i=0;i<3;i++){
    printf("\n nazvanie punkta naznachenya:");
    scanf("%s", train.punkt);
    printf("\n nomer poezda:");
    scanf("%d",&train.nomer);
    printf("\n chas");
    scanf("%d",&train.chas);
    printf("\n minuta");
    scanf("%d", &train.minuta");
    fwrite(&train,sizeof (struct poezd),1,f);
    }
    fclose(f);
    }
    Преподаватель сказал, что лучше во времени отправления взять час и минуту, как отдельные целые числа. Каким образом правильно сделать ввод времени пользователем при создании файла. То есть, чтобы было в виде, например, 11:30?
     
  4. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Задача

    В принципе не важно на каком языке писать, если что хотя бы намекните. Задача по программированию.
    Дана точка(x,y) и многоугольник (x1,y1,x2,y2,x3,y3). У него не более 100 рёбер.В задаче они описываются как человек и забор. То есть человек представлен точкой, а забор многоугольником. Надо определить какие звенья забора может увидеть человек. Причём сквозь забор он не видит ничего. Можно конечно решать тонной уравнений прямых, но хотелось бы более простое решение. Оно вроде бы есть. Буду благодарен за ответы до понедельника)
     
  5. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,301
    Reputations:
    327
    если разбираешься - посмотри подсчет FOVangle (Filed Of View, по дефолту в играх он 90 градусов, те ты видишь четверть окружающего) и хитбоксов (из аимботов под кс например)

    [​IMG]

    это в случае ес нормально к объекту находишься (твоя у параллельна забору), те твой viewport. а если нет то там погеморойней

    а вот еще вариант

    [​IMG]

    о бля тут я переборщил, средний меридиан такой не будет точно если вупорт под углом(, о бля а может и будет!)) это для статистики интересно кста)
     
    #1965 sn0w, 12 Dec 2009
    Last edited: 12 Dec 2009
    1 person likes this.
  6. Alexey2

    Alexey2 New Member

    Joined:
    30 May 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    PASCAL

    Помогите плз решить вот такую вот хреньку... Долго думал, но нифига не понял, даже условие задачи...

    Составить функцию, которая возвращает значение 0, если в последовательности целых чисел а1,а2,...аn отсутствуют три соседних нечетных числа, или номер первого числа встретившейся тройки таких чисел...

    Ну или подскажите хотя бы в какую сторону копать)
    Спасибо))
     
  7. pixelm

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

    Joined:
    4 Jan 2008
    Messages:
    26
    Likes Received:
    6
    Reputations:
    0
    Программа не запускается, помогите пожалуйста найти ошибки?

    Code:
    #include <stdio.h>
    void sozdanie();
    void dobavlenie();
    void udalenie();
    void korrektirovka();
    void prosmotr();
    void sortirovka();
    void vivod();
    void vihod();
    
    void main(void)
        {
         char ch,v;
         do {
    	 printf("1. Sozdanie \n");
    	 printf("2. Dobavlenie \n");
    	 printf("3. Udalenie \n");
    	 printf("4. Korrektirovka \n");
    	 printf("5. Prosmotr \n");
    	 printf("6. Sortirovka \n");
    	 printf("7. Vivod \n");
    	 printf("8. Vihod \n");
    
    	 printf("Vvedite nomer komandi: \n");
    
    	 ch=getchar();
    	 v=getchar();
    
    	 switch (ch)
    		{
    		 case '1': sozdanie();break;
    		 case '2': dobavlenie();break;
    		 case '3': udalenie();break;
    		 case '4': korrektirovka();break;
    		 case '5': prosmotr();break;
    		 case '6': sortirovka();break;
    		 case '7': vivod();break;
    		 }
    	 } while ((ch)='1' && ch<='7');
    }
    void sozdanie()
    {
    struct poezd
    {
    char punkt[15];
    int nomer;
    int chas;
    int minuta;
    }train;
    FILE*f;
    int i;
    f=fopen ("test","w");
    if(ferror(f)) perror("oshibca");
    else{for(i=0;i<3;i++){
    printf("\n nazvanie punkta naznachenya:");
    scanf("%s", train.punkt);
    printf("\n nomer poezda:");
    scanf("%d",&train.nomer);
    printf("\n vremya otpravlenya");
    scanf("%d:%d",&train.chas, &train.minuta");
    fwrite(&train,sizeof (struct poezd),1,f);
    }
    fclose(f);
    }
    void dobavlenie()
    {
    printf ("Dobavlenie faila \n");
    }
    void udalenie()
    {
    printf ("Udalenie faila \n");
    }
    void korrektirovka()
    {
    printf ("Korrektirovka faila \n");
    }
    void prosmotr()
    {
    printf ("Prosmotr faila \n");
    }
    void sortirovka()
    {
    printf ("Sortirovka faila \n");
    }
    void vivod()
    {
    printf ("Vivod faila \n");
    }
    void vihod()
    {
    printf ("Vihod \n");
    }
    
     
  8. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Таки придется решать тонной уравнений
    См алгоритмы поиска пересечений отрезков
    http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%82%D1%80%D0%B5%D0%B7%D0%BA%D0%BE%D0%B2
     
    #1968 Algol, 13 Dec 2009
    Last edited: 13 Dec 2009
  9. BitHack

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

    Joined:
    14 Jan 2008
    Messages:
    47
    Likes Received:
    34
    Reputations:
    0
    помогите с программой плиз.

    Дана целочисленная квадратная матрица n*n
    1) Найти номера столбцов элементы которых образают убываюшую последовательность. Номера вывести на печать.
    2) Номера выделенных столбцов возвести в квадрат и вывести на печатать, расположив по возрастанию.
     
  10. Thenno

    Thenno Member

    Joined:
    3 Jul 2009
    Messages:
    77
    Likes Received:
    21
    Reputations:
    0
    Не знаю даже, в какую сторону отсылать, ибо это основы, поэтому сразу код:
    Code:
    function proverk (a:array[1..n] of integer):integer;
      var
        i,j:integer;
      begin
        for i:=1 to n-2 do
          if a[i] mod 2 <> 0 then
            if a[i+1] mod 2 <> 0 then
              if a[i+2] mod 2 <> 0 then
                begin
                  proverk:=i;
                  exit;
                end;
          proverk:=0;
      end;
     
  11. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    А если бы нужно было проверить последовательности из 23 элементов, ты бы делал 23 IFа ? :)
     
  12. Thenno

    Thenno Member

    Joined:
    3 Jul 2009
    Messages:
    77
    Likes Received:
    21
    Reputations:
    0
    Нет конечно. Просто если надо из трех, то мне проще написать три IFа подряд и не парится.
     
  13. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    Вот тебе на С. Дополнительная сортировка номеров столбцов не нужна, т.к. они и так в массиве по-порядку
    Code:
    #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    
    typedef struct {
    	int* col_nums;
    	int col_count;
    } matrix_info_t;
    
    #define N 3
    
    matrix_info_t* scan_matrix(int* M, int n);
    
    int main(int argc, char** argv)
    {
    	int M[N*N] = {
    		5,2,3,
    		4,3,2,
    		3,4,1
    	};
    	
    	matrix_info_t * m_info = scan_matrix(M, N);
    	
    	(void)printf("Номера столбцов:\n");
    	for(int i = 0; i < m_info->col_count; i++){
    		(void)printf("%d ", m_info->col_nums[i]);
    	}
    	
    	(void)printf("\nНомера столбцов в квадрате:\n");
    	for(int i = 0; i < m_info->col_count; i++){
    		(void)printf("%d ", m_info->col_nums[i]*m_info->col_nums[i]);
    	}
    	
    	(void)printf("\n");
    	
    	return 0;
    }
    
    matrix_info_t* scan_matrix(int* M, int n){
    	
    	matrix_info_t * ret = malloc(sizeof(matrix_info_t));
    	ret->col_count = 0;
    	
    	for(int j = 0; j < n; j++){
    		bool correct_column = true;
    		for(int i = 1; i < n; i++){
    			if(M[N*(i - 1) + j] < M[N*i + j]){
    				correct_column = false;
    				break;
    			}
    		}
    		
    		if(correct_column){
    			ret->col_nums = realloc(ret->col_nums, sizeof(int) * ret->col_count++);
    			ret->col_nums[ret->col_count - 1] = j;
    		}
    	}
    	
    	return ret;
    	
    }
     
    #1973 ss88, 13 Dec 2009
    Last edited: 13 Dec 2009
    1 person likes this.
  14. lamsonir

    lamsonir Banned

    Joined:
    15 Sep 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Нужна помощь, сделать лаб работу на delphi
    Тема: Разработка матрицы смежности по заданному графу.(в icq дам точное задание)
    Кто может помочь, пишите ICQ 573777
    естественно не бесплатно)))
     
  15. Nelson17

    Nelson17 New Member

    Joined:
    3 Dec 2008
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Дана целочисленная матрица размера m на n. Размер матрицы задается динамически во время выполнения программы. Для хранения элементов матрицы использовать динамическое выделение памяти. Матрица заполняется случайными числами в диапазоне от -50 до 50. Используя алгоритм пузырьковой сортировки отсортировать элементы каждой четной строки по возрастанию, а нечетную - по убыванию. Заполнение матрицы случайными числами, сортировку элементов строк матрицы и вывод матрицы на экран организовать в виде функции.
    Задание вроде не сильное с первого взгляда, но написать не могу. Помогите по-возможности. С++
     
  16. Alexey2

    Alexey2 New Member

    Joined:
    30 May 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Thenno, биг спс, хоть что то)

    А как бы ты реализовал по - другому...?
     
  17. Odio

    Odio New Member

    Joined:
    30 Nov 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Люди помогите решить задачи с двумерными массивами пож =\
    1. Дан двумерный массив А[n,m].Посчитать количество отрицательных чисел в массиве. Вывести количество на печать.
    2. Найти два минимальных элемента в первой строке массива А[n, n].
     
  18. Thenno

    Thenno Member

    Joined:
    3 Jul 2009
    Messages:
    77
    Likes Received:
    21
    Reputations:
    0
    Отвечу я: можно IF'ы в цикл засунуть просто, но там мороки побольши чуть-чуть. Есть тебе точно дано 3, то проще написать без них.
     
  19. BitHack

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

    Joined:
    14 Jan 2008
    Messages:
    47
    Likes Received:
    34
    Reputations:
    0
    я забыл написать, что нужно написать на паскале)))
    можешь переписать пожалуйста) :rolleyes:
     
  20. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    Не путай С и С++
    Вот:
    Code:
    #include <stdbool.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    void fill_matrix(int* matrix, int m, int n);
    void print_matrix(int* matrix, int m, int n);
    void sort_matrix(int* matrix, int m, int n);
    
    int main(int argc, char** argv)
    {
    	int m, n;
    	(void) printf("Введите количество строк: ");
    	(void) scanf("%d", &m);
    	(void) printf("Введите количество столбцов: ");
    	(void) scanf("%d", &n);
    	
    	int * matrix = malloc(m * n * sizeof(int));
    	
    	fill_matrix(matrix,m,n);
    	
    	print_matrix(matrix,m,n);
    	
    	(void) printf("Сортировка\n");
    	
    	sort_matrix(matrix,m,n);
    	
    	print_matrix(matrix,m,n);
    	
    	return 0;
    }
    
    void fill_matrix(int* matrix, int m, int n){
    	for(int i = 0; i < m; i++){
    		for(int j = 0; j < n; j++){
    			int r = rand() % 51;
    			matrix[m*i + j] = (r % 2)?-r:r;
    		}
    	}
    }
    
    void print_matrix(int* matrix, int m, int n){
    	(void) printf("\nМатрица [%d,%d]\n", m, n);
    	
    	for(int i = 0; i < m; i++){
    		for(int j = 0; j < n; j++){
    			(void) printf("%3d ", matrix[m*i + j]);
    		}
    		(void) printf("\n");
    	}
    	(void) printf("\n");
    }
    
    void sort_matrix(int* matrix, int m, int n){
    	for(int i = 0; i < m; i++){
    		bool cond = true;
    		while(cond) {
    			cond = false;
    			for(int j = 0; j < n - 1; j++){
    				if(i % 2){
    					if(matrix[m*i + j] < matrix[m*i + j + 1])
    						cond = true;
    				} else {
    					if(matrix[m*i + j] > matrix[m*i + j + 1])
    						cond = true;
    				}
    				
    				if(cond){
    					int swp = matrix[m*i + j];
    					matrix[m*i + j] = matrix[m*i + j + 1];
    					matrix[m*i + j + 1] = swp;
    				}
    			}
    		}
    	}
    }
    Результаты в таком виде:
    Если не захочет компилироваться в среде, которую ты используешь, то заюзай gcc:
    Какая неописюемая наглость :) Не могу, я паскаль последний раз видел на 1-м курсе, а это было лет 7 назад, но я запомнил, что его лучше не видеть :)
    Перепиши сам, это не трудно
     
    #1980 ss88, 13 Dec 2009
    Last edited: 13 Dec 2009
Thread Status:
Not open for further replies.