на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Архитектура материнских плат
p align="left">Все основные электронные схемы компьютера и необходимые дополнительные устройства включаются в материнскую плату, или подключаются к ней с помощью слотов расширения. Говорить о материнской плате в отдельности от всех остальных частей компьютера не возможно -- это комплекс устройств, работающий как один организм.

Список литературы

1. Борзенко, А. IBM PC: устройство, ремонт, модернизация [Текст] / А. Борзенко // Журнал Компьютер Пресс. - 1995. - январь. - С. 52-55.

2. Аврин, С. Компьютерные артерии [Текст] / С. Аврин // Журнал Hard `n' Soft. - 1994. - №6. - С. 29-33.

3. Фролов, А.В. Аппаратное обеспечение IBM PC [Текст] / А.В. Фролов, Г.В.Фролов // Журнал ДИАЛОГ-МИФИ. - 1992. - С. 202-206.

4. Скотт Мюллер Модернизация и ремонт ПК [Текст] / Скотт Мюллер //Журнал Вильямс. - 2007. - С. 241-443.

Задание №2

Рисунок 1- Блок-схема к заданию №2

Полный исходный текст программы

/* задача про прямоугольники */

#include <stdio.h>

main()

{

int a, b, c, d;

//ввод сторон прямоугодьников

printf("Enter fore positive numbers: ");

scanf("%d%d%d%d", &a, &b, &c, &d);

/* условия выполнения задачи*/

if((c > a)&&(d > b))

printf("Yes\n");//прямоугольник со сторонами a, b вмещается в прямоугольник со сторонами c, d

else

if((c > b)&&(d > a ))

printf("Yes\n");//прямоугольник со сторонами a, b вмещается в прямоугольник со сторонами c, d

else

printf("No\n");//прямоугольник со сторонами a, b не вмещается в прямоугольник со сторонами c, d

getch();

return 0;

}

Задание №3

Рисунок 2- Блок-схема к заданию №3

Полный исходный текст программы

#include <stdio.h>

void ch(int *, int*);//прототип функции ch

main() {

int n=0, m=0, i, j;

int a[26][26]; // объявление массива

//прозьба ввести границы матрицы, удовлетворяющие условию

while (((m==0)||(m>25))||((n==0)||(n>25))) {

printf("Enter n\n");

scanf("%i", &n);

printf("Enter m\n");

scanf("%i", &m);

printf("\n");

}

//заполнение и вывод исходной матрицы

for (i = 1; i <= n; i++) {

for (j = 1;j <= m; j++) {

a[i][j] = j;

printf("%3i", a[i][j]);

}

printf ("\n");

}

printf ("\n");

/*преобразование исходной матрицы с помощью функции ch */

for(j = 1; j <= (m - m %2); j++) {

if (j%2) {

for( i =1; i <= n; i++) {

ch(&a[i][j+1],&a[i][j]);

}

}

}

/*вывод преобразованной матрицы*/

for (i = 1; i <= n; i++) {

for (j = 1; j <= m; j++) {

printf("%3i", a[i][j]);

}

printf ("\n");

}

return 0;//выход из функции main и из всей программы

}

void ch(int * x, int * y)// определение функции

{

// замена элементов строки местами

int t;

t = *x;

*x = *y;

Задание №4

Рисунок 3- Блок-схема к заданию №4

Функция main

Функция insert - вставляет элемент в список

Функция prinList - печатает список

Функция oneLeft - возвращает 1, если в списке остался один элемент, иначе возвращает ноль

Функция delete4 - удаляет элемент из списка

Полный исходный текст программы

// подключение стандартных заголовочных файлов

#include <stdio.h>

#include <stdlib.h>

// определение структуры - ячейки связного циклического списка

struct listNode{

int data;

struct listNode *nextPtr;

};

//определение типа структуры и указателя на нее

typedef struct listNode LISTNODE;

typedef LISTNODE *LISTNODEPTR;

// прототипы функций

// функция вывода списка

int prinList(LISTNODEPTR *);

// функция вставки в список

void insert(LISTNODEPTR *, int);

// функция удаления элемента списка

int delete4(LISTNODEPTR *, int);

// предсказывающая функция

int oneLeft(LISTNODEPTR);

// функция main

main () {

// определение указателя на начало списка

LISTNODEPTR startPtr= NULL;

int g;

printf("Please fill the list with INTEGER value.\nAdding is stoped by 0 value.\n");

// ввод значения для заполнения списка

scanf("%i", &g);

while (g!=0) {

// вызов функции вставки в список и передача ей адреса первого элемента списка и значения нового элемента

insert(&startPtr, g);

scanf("%i", &g);

}

printf("\n __________________________________________\n");

printf("\n List IS: \n");

// выводит на экран список и проверяет возвращаемое функцией вывода списка значение

if (prinList(&startPtr)) { //если выведено успешно

// ввод значения удовлетворяющего условию типа int и условию задачи

while ((g<1)||(g>32000)) {

printf ("\nEnter number to delete: ");

scanf("%i", &g);

}

printf("\n");

// пока не остался один элемент - удалять элементы в соответствии с введенным номером

while((!oneLeft(startPtr))) {

delete4(&startPtr, g);

};

printf("The last element is: ");

// выводит на экрн список

prinList(&startPtr);

printf("\nPress ENTER to exit...");

getch();

}

else { //если вывод списка неуспешен (список пуст или поврежден)

printf("Nothing to delete\nPress ENTER to exit...");

getch();

}

return 0;

}

// функция вставки в список. Вставляет принятое значение в конец списка

void insert(LISTNODEPTR *sPtr, int value){

// инициализация переменных

LISTNODEPTR newPtr, previousPtr, currentPtr;

// выделяем пмять для структуры listnode, и записываем адрес в newPtr

newPtr = malloc(sizeof(LISTNODE));

// если память выделена:

if (newPtr != NULL )

{

// формируем новую ячейку списка

newPtr->data = value;

newPtr->nextPtr = NULL;

// ставим указатель currentPtr на начало списка

currentPtr = *sPtr;

// если список пустой:

if (*sPtr == NULL) {

// формируем первый элемент списка

newPtr->nextPtr= *sPtr;

*sPtr=newPtr;

}

else

{ // если список не пустой

//если список состоит из одного элемента

if ((currentPtr->nextPtr) == NULL) {

// вставляем новый элемент списка и зацикливаем список

newPtr->nextPtr = *sPtr;

((*sPtr)->nextPtr) = newPtr;

}

else { // если список состоит из двух и более

// устанавливаем указатель на currentPtr на последний элемент циклического списка

// пока следующий за currentPtr элемент не начало списка

while (currentPtr->nextPtr != *sPtr) {

// передвигаем currentPtr по списку вперед

currentPtr=currentPtr->nextPtr;

}

// вставляем новый элемент списка и замыкаем список

currentPtr->nextPtr = newPtr;

newPtr->nextPtr=*sPtr;

}

}

}

// вывод сообщения об ошибке в случае невыделения памяти

else

printf("Insuficient Memory!!!!!!! ENOUGH!");

}

// функция печати списка. Принимает указатель списка и печатает список. Если список пуст - возвращает 0

int prinList(LISTNODEPTR *sPtr)

{

// определение переменной указателя

LISTNODEPTR currentPtr;

// установка указателя на начало списка

currentPtr = *sPtr;

if (currentPtr == NULL) { // если список пустой

printf("List is empty. \n\n");

return 0;

}

else { // если не пустой

// вывод значения элемента, на который указывает указатель currentPtr

printf(" %d ", currentPtr->data);

// пока следующий за currentPtr не начало списка и не конец списка

while ((currentPtr->nextPtr != *sPtr)&&(currentPtr->nextPtr != NULL)){

// перемещаем указатель currentPtr на следующий элемент

currentPtr = currentPtr -> nextPtr;

// вывод значения элемента, на который указывает указатель currentPtr

printf(" %d ", currentPtr->data);

}

return 1;

}

}

// функция сообщающая о том , что список состоит из одного элемента

int oneLeft(LISTNODEPTR sPtr){

return (sPtr->nextPtr)==NULL;

}

// функция удаления элемента. Удаляет элемент и перемещает указатель, указывающий начало списка, на следующий элемент за удаленным

int delete4(LISTNODEPTR *sPtr, int n){

// инициализация переменных

LISTNODEPTR previousPtr, currentPtr, tempPtr;

int i,tw=0;

// елси список пуст - выйти из функции

if ((*sPtr)==NULL)

return 0;

// установка указателей

previousPtr = *sPtr;

currentPtr = (*sPtr)->nextPtr;

// если удаляем не первый элемент

if (n!=1) {

// устанавливаем указатель currentPtr на удаляемый элемент

// устанавливаем указатель previousPtr на предшествующий ему

for(i=1; i<(n-1); i++) {

previousPtr = currentPtr;

currentPtr = currentPtr->nextPtr;

}

}

else { // если удаляем первый элемент

// устанавливаем указатель currentPtr на удаляемый элемент

// устанавливаем указатель previousPtr на предшествующий ему

while((currentPtr)!=(*sPtr)){

previousPtr = currentPtr;

currentPtr = currentPtr->nextPtr;

}

};

// если в списке не 2 элемента

if( ( ((*sPtr)->nextPtr)->nextPtr )!=*sPtr ) {

//исключаем currentPtr

previousPtr->nextPtr=currentPtr->nextPtr;

}

else {

// разрываем список

previousPtr->nextPtr=NULL;

};

// устанавливаем указатель начала списка на следующий за currentPtr элемент

*sPtr=currentPtr->nextPtr;

// удаляем из памяти элемент currentPtr

tempPtr = currentPtr;

free(tempPtr);

}

//конец

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.