- •1 Составить программу на Asm для очистки экрана
- •2 Cоставить прграмму на Asm для преобразования строчных букв в прописные
- •3 Сост . Прогр . На Asm для нахождения в заданном массиве номера первого числа, равного нулю
- •4 Написать на Asm программу для сохранения текстового экрана в буфере и последующей записи буфера в файл
- •5 В области памяти, адресуемой регистром si нах-ся цепочка семибитных кодов символов….
- •6 Перевод из одной системы исчисления в другую
- •1 Розробити консольну програму, яка відкриває файл порціями по 4Кб та відображае його зміст в вікні. Для роботи з файлами викорастати Win32 Api
- •6 Программа, демонстрирующая синхронизацию доступа к глобальному массиву с пом. Мютексов
- •7 Написать фрагмент программы, которая показывает синхронизацию процессов с помощью семофоров
- •9 Файлы, отображаемые в памяти
- •10 Фрагмент программы для, демонстрирующий обмен данными, с помощью сообщения wm_copydata ( фрагмент выделен жирным шрифтом)
- •ОПиАя и ооп
- •12.4 Дан файл символов построить частотный словарь, представив его виде бинарного дерева поиска и составить линейно скобочную запись.
- •13.4 Дан файл, компоненты которого являются действительными числами. Сформировать линейный список и
- •14.4 // Дан файл символов. Сформировать линейный список. Просмотреть линейный список из головы и составить из
- •15.4 Дан текстовый файл, состоящий только из латинских букв. Необходимо инвертировать каждую строку файла, используя стек, и записать полученные строки в другой файл.
- •16.4 Представить многочлен в виде линейного списка. Написать прогу кот выполняет сложение многочленов
- •17.4 Написать процедуру, которая осуществляет сложение целых чисел произвольной длины(двухсвязный список)
- •22.4 Дан файл целых чисел компоненты которого различны, сформировать циклический линейный список, задать число n и удалять n-ый элемент в списке пока не останется 1
- •23.4 // Вычислить значение арифметического выражения, преобразовав его в постфиксную форму. Предусмотреть со скобками и без скобок.(со стеком)
- •24.4 // Сформировать числовой файл и отсортировать его компоненты с помощью двух стеков.
- •25.4 Дан файл символов сформировать дерево поиска описав процедуру удаления элнмента из дерева и функцию подсчета листьев в дереве.
- •35.4 Вычислить значение арифметического выражения, преобразовав его в постфиксную форму. Предусмотреть со скобками и без скобок.(со стеком)
- •44.4 Написать процедуру которая обращает данный список
- •45.4 Написать процедуру которая по линейно скобочной записи строит бинарное дерево поиска
- •46.4) Написать процедуру для подсчета листьев в бинарном дереве поиска
- •9. Побудувати параметризований клас черги.
ОПиАя и ооп
12.4 Дан файл символов построить частотный словарь, представив его виде бинарного дерева поиска и составить линейно скобочную запись.
//подключение внешних модулей
#include "stdio.h"
#include "string.h"
#include "iostream.h"
#include "Windows.h"
#include "io.h"
#include "fcntl.h"
#include <sys/stat.h>
struct list{//ст-ра элемента дерева
char el;
int count;
list *nextl,*nextr; };
char* scob_zap(list *node)
{//функция воз-я скоб-ю запись дерева
char * asd = new char [1024];
ZeroMemory(asd,1024);//очищаем память
asd[0] = node->el;//записывем то что нах-ся в инф поле
strcat(asd,"(");//присоединяем (
if(node->nextl!=NULL)
strcat(asd,scob_zap(node->nextl));//рек-но ищем ск. зап. Для левого наследника
strcat(asd,",");
if(node->nextr!=NULL)
strcat(asd,scob_zap(node->nextr)); //рек-но ищем ск. зап. Для правого наследника
strcat(asd,")");
return asd;//возвращаем получ значение
}
void insert_el(char el, list ** node)
{//функция вставки элемента в дерево
if(*node == NULL)
{//создаем новый элемент
*node = new list;
(*node)->el = el;
(*node)->nextl = NULL;
(*node)->nextr = NULL;
(*node)->count = 1;
}else//изменяем уже имеющийся если оны равны
if(el == (*node)->el){ (*node)->count++;
}else{//если не равны – ищем дальше
if(el>(*node)->el) insert_el(el,&(* node)->nextr); else
insert_el(el,&(* node)->nextl);
}}
int fh;
void main(){ //the main function
fh = -1;//file handle
list *fst,*tek;
fst = tek = NULL;//создаём файл
fh = _open( "tmp1.file", _O_WRONLY|_O_CREAT );
printf("vvedite simvol i = ");
char i;
scanf("%c",&i);
do{
int j = _write(fh,&i,sizeof(char));//записываем элементы в него
if(j<=0) printf("error write");
printf("Vvedite simvol(konechnii element - !) i = ");
cin>>i;}while(i!='!');
_close(fh);//close file
fh = _open( "tmp1.file",_O_RDONLY );
bool is_first = true;//
while(!_eof(fh))
{ _read(fh,&i,sizeof(char)); insert_el(i,&fst);
}// end of tree construction
printf("%s",scob_zap(fst));//output string
}
13.4 Дан файл, компоненты которого являются действительными числами. Сформировать линейный список и
найти наибольшее из значений компонент.
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
struct list
{
int info;
list *prev;
list *next;
list() { prev=NULL; next=0; info=0; }
};
void insert_post(list *, int);
void printList(list *);
int findMax(list *);
list *first=0;
list *last=0;
char buffer[100];
void main( void )
{
int fh;
unsigned int i, nbytes = 100, bytesread;
char digit[10];
list *p;
/* Open file for input: */
if((fh = _open("file.dat", _O_RDONLY)) == -1)
{
perror("open failed on input file");
exit(1);
}
/* Read in input: */
if((bytesread = _read(fh, buffer, nbytes)) <= 0) {
perror("Problem reading file");
exit(1);
}
for(i=0; i<bytesread; i++) {
if(buffer[i]==0x0a) continue;
p=last;
sprintf(digit, "%c", buffer[i]);
insert_post(p, atoi(digit));
}
printList(first);
printf("The max item in the list is %d\n", findMax(first));
_close(fh);
}
/* Tставка элемента после текуего */
void insert_post(list *q, int value)
{
list *p = new list;
if (q != 0)
{
p->next = q->next;
p->prev = q;
}
p->info = value;
if (q == 0)
{
first = p;
last = p;
}
else
{
if (q->next == 0) last = p;
else q->next->prev = p;
q->next = p;
}
}
/* find max item in the list */
int findMax(list *q)
{
int max=-9999;
while(q!=NULL) {
if(q->info > max) max = q->info;
q = q->next;
}
return max;
}
/* Print the list */
void printList(list *q)
{
if (q == 0)
printf("List is empty.\n\n");
else
{
printf("The list is:\n");
while (q != 0)
{
printf("%d-> ", q->info);
q = q->next;
}
printf("NULL\n\n");
}
}