Презентация Адресная арифметика. «Структурные» типы данных онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Адресная арифметика. «Структурные» типы данных абсолютно бесплатно. Урок-презентация на эту тему содержит всего 30 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Адресная арифметика. «Структурные» типы данных
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:30 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:425.00 kB
- Просмотров:80
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№6 слайд
Содержание слайда: 2.2 Управление динамической памятью (С)
1. Размещение в памяти одного значения
Выделение памяти
void * malloc(size_t size);
Освобождение памяти
void free(void *block);
Пример:
int *a;
if ((a = (int *) malloc(sizeof(int))) == NULL){
printf("Not enough memory.");
exit(1);
}
*a=-244;
free(a);
№7 слайд
Содержание слайда: Управление динамической памятью (С)
2. Размещение нескольких значений
Выделение памяти
void * сalloc(size_t n, size_t size);
Освобождение памяти
void free(void *block);
Пример:
int *list;
list = (int *) calloc(3,sizeof(int));
*list=-244;
*(list+1)=15;
*(list+2)=-45;
…
free(list);
№8 слайд
Содержание слайда: Управление динамической памятью в С++
1. Одно значение
Операция выделения памяти
<Указатель> =new<Имя типа>[(<Значение>)];
Операция освобождения памяти
delete <Указатель>;
Примеры:
а) int *k;
k = new int;
*k = 85;
б) int *a;
if ((a = new int(-244)) == NULL){
printf("Not enough memory.");
exit(1); }
delete a;
№9 слайд
Содержание слайда: Управление динамической памятью в С++ (2)
2. Несколько значений
Операция выделения памяти для n значений:
<Указатель> =new<Имя типа>[<Количество>];
Операция освобождения памяти:
delete [ ] <Типизированный указатель>;
Пример:
int *list;
list = new int [3];
*list=-244;
*(list+1)=15;
*(list+2)=-45;
delete[ ] list;
№10 слайд
Содержание слайда: 2.3 Массивы
Объявление массива:
<Тип элемента> <Имя>[<Размер1>] [<Размер2>] ...[=
{<Список значений >}];
Примеры:
1) int a[4][5];
2) short x[3][4] ={{9,6,-56,0}, {10,3,-4,78}, {-6,8,45,7}};
Примечания:
1) индексы массива всегда начинаются с 0;
2) многомерные массивы в памяти расположены построчно;
3) для адресации элементов массива независимо от способа описания можно использовать адресную арифметику:
(list+i) &(list[i])
*(list+i) list[i]
№11 слайд
Содержание слайда: Пример программы обработки массива (Ex2_01)
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#define N 5
void main(int argc, char* argv[])
{ int a[N][N],i,j,s[N];
for(i=0; i<N; i++){
printf("Input numbers of %2d string:\n",i);
for (j=0; j<N; j++) scanf("%d",&a[i][j]);
}
for(i=0;i<N;i++)
for (j=0,s[i]=0;j<N;j++) s[i]+=a[i][j];
for(i=0; i<N; i++){
for (j=0; j<N; j++) printf("%3d ",a[i][j]);
printf("sum=%4d\n",s[i]);
}
getch();
}
№14 слайд
Содержание слайда: Объявление строки
Объявление строки
char <Имя>[<Объем памяти>] [= <Значение>];
Объявление указателя на строку
char *<Имя указателя>[= <Значение>];
Примеры:
а) char str[6]; б) char *ptrstr;
ptrstr=new char[6];
в) char str1[5] = {‘A’,’B’,’C’,’D’,’\0’};
г) char str1[ ] = “ABCD”;
д) char *str2 = “ABCD”;
№15 слайд
Содержание слайда: Объявление и инициализация массивов строк
Массив указателей на строки
char * <Имя>[<Размер 1>] [= <Значение>];
Массив строк указанной длины
char <Имя>[<Размер 1>][Размер 2] [= <Значение>];
Примеры:
а) char * mn[4] = {“весна”, “лето”,”осень”,”зима”};
б) char ms[4][7] = {“весна”, “лето”,”осень”,”зима”};
№16 слайд
Содержание слайда: Функции, работающие со строками
Библиотеки: string.h, stdlib.h
1) определение длины строки: size_t strlen(char *s);
2) конкатенация строк:
char *strcat(char *dest,const char *src);
3) сравнение строк:
int strcmp(const char *s1,const char *s2);
4) копирование строки src в dest:
char *strcpy(char *dest,const char *src);
5) копирование фрагмента dest строки src:
char *strncpy(char *dest,const char *src,size_t maxlen);
6) поиск символа c в строке s:
сhar *strchr(const char *s, int c);
7) поиск подстроки s2 в строке s1:
char *strstr(const char *s1, const char *s2);
8) поиск токенов в строке:
char *strtok(char *strToken,const char *strDelimit);
№17 слайд
Содержание слайда: Функции, работающие со строками (2)
9) преобразование строки в целое число:
int atoi(const char *s);
10) преобразование строки в вещественное число:
double atof(const char *s);
11) преобразование числа в строку:
char *itoa(int value,char *s,int radix);
12) преобразование числа в строку:
char *_gcvt( double value, int digits,
char *buffer );
13) преобразование числа в строку:
char *_ecvt(double value,int count,int *dec,
int *sign);
count - количество цифр, dec,sign – позиции точки и знака
14) преобразование числа в строку:
char *_fcvt(double value,int count,int *dec,int *sign);
count - количество десятичных цифр
№18 слайд
Содержание слайда: Пример преобразования числа в строку
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
void main( void )
{ int decimal, sign; // позиция точки и знака
char *buffer;
int precision = 10; // точность
double source = 3.1415926535;
buffer =_ecvt( source, precision, &decimal, &sign );
printf
("source: %12.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}
№19 слайд
Содержание слайда: Пример использования функции strtok (Ex2_03)
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
char string[] = "A string\tof ,,tokens\nand some
more tokens";
char seps[] = " ,\t\n", *token;
void main( void )
{ token = strtok( string, seps );
while( token != NULL )
{ printf( "%s ", token );
token = strtok( NULL, seps );
}
}
Результаты:
A string of tokens and some more tokens
№20 слайд
Содержание слайда: Пример использования функций обработки строк
Петров Петр Петрович 1956 => Петров П.П. 50 (Ex2_04)
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc, char* argv[])
{ char st[80],stres[80],strab[80],
*ptr1,*ptr2,*ptr3;
int old;
while ((puts("Input string or Ctrl_Z:"),
gets(st))!=NULL) {
strcpy(stres,st);
ptr1=strchr(stres,' ');
*(ptr1+2)='.';
№22 слайд
Содержание слайда: 2.5 Структуры
1. Объявление (Си)
struct [<Имя структуры>] {<Описание полей>}
[<Список переменных [и значений>]];
Примеры:
а) struct student { char name[22]; char family[22]; int old; };
struct student stud1={“Петр”, “Петров”, 19}, stud[10], *ptrstud;
б) struct { char name[22]; char family[22]; int old; } stud1, stud[10], *ptrstud;
2. Объявление (С++)
typedef struct {<Описание полей>} <Имя структуры>;
<Имя структуры> <Список переменных [и значений]>;
Пример:
typedef struct { char name[22]; char family[22]; int old; } student;
struct student stud1={“Петр”, “Петров”, 19}, stud[10], *ptrstud;
№24 слайд
Содержание слайда: Пример использования структуры (Ex2_05)
Программа определения среднего балла каждого студента и группы в целом
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
typedef struct {
char name[10];
int ball;
} test;
typedef struct {
char family[22];
test results[5];
}student;
№25 слайд
Содержание слайда: Пример использования структуры (2)
int main(int argc, char* argv[])
{student stud[10]; int i,n=0; float avarstud,avarage=0;
while (puts("Input names, subjects and marks or end"),
scanf("\n%s",stud[n].family),
strcmp(stud[n].family,"end")!=0) {
for (avarstud=0,i=0; i<3; i++)
{ scanf("\n%s %d",stud[n].results[i].name,
&stud[n].results[i].ball);
avarstud+=stud[n].results[i].ball;}
printf("Average:%s=%5.2f\n",
stud[n].family,avarstud/3);
avarage+=avarstud;
n++; }
printf("Group average mark=%5.2f\n",avarage/n/3);
getch();
return 0;}
№27 слайд
Содержание слайда: 2.7 Динамические структуры данных (Ex2_06)
Пример. Стек записей.
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
struct zap {char det[10]; float diam; zap *p; };
int main(int argc, char* argv[])
{ zap a,*r,*q,*f;
r=new zap;
r->p=NULL;
puts("Input strings");
scanf("%s %f\n",r->det,&r->diam);
Скачать все slide презентации Адресная арифметика. «Структурные» типы данных одним архивом:
-
Типы данных в языке Паскаль
-
Типы данных. массивы
-
Типы данных и операторы
-
Специализированные типы данных
-
Комментарии, переменные, операторы, константы. Типы данных
-
Excel. Назначение. Структура. Типы данных
-
Типы данных и переменные в социологии
-
Поиск, Идентификация и отбор трансформированных клеток, содержащих в рекомбинантной ДНК заданный структурный ген
-
Типы данных. Режимы адресации
-
Типы данных в языке С