Автор работы: Пользователь скрыл имя, 26 Ноября 2012 в 16:24, доклад
Проектирование алгоритмов и программ - наиболее ответственный этап жизненного цикла программных продуктов, определяющий, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей. Затраты на создание, сопровождение и эксплуатацию программных продуктов, научно-технический уровень разработки, время морального устаревания и многое другое - все это также зависит от проектных решений.
В рассмотренном 
примере определен массив B, состоящий  
из четырех целочисленных элементов. С 
элементами массива можно манипулировать 
как с обыкновенными переменными. 
Существуют многомерные массивы, например: 
int A[3][2];  -двумерный массив 
(четыре строки и три столбца): 
char   A[3][3][3][3]; - четырехмерный 
массив. 
Рассмотрим пример работы с двумерным 
массивом. 
#include “stdio.h” 
main() 
{ 
            float B[4][3]; 
B[0][0] = 0; 
            B[1][1] = 1.1; B[2][1] = 1.2; B[3][1] = 1.3; 
            B[1][2] =2.1;  B[2][2] =         2.2;  B[3][2] =2.3; 
            printf("B[1,1]= %4.2f B[2,1]= %4.2f B[3,1]= %4.2f\\n", B[1][1],B[2][1],B[3][1]); 
            printf("B[1,2]= %4.2f B[2,2]= %4.2f B[3,2]= %4.2f\\n", B[1][2],B[2][2],B[3][2]); 
}
Записи 
В отличие от массивов  запись  позволяет  
хранить  данные различных  типов. Запись  
начинается  после  ключевого  слова struct.  
Пример, где в записи  хранится  информация  
о студентах: фамилия, год рождения, номер 
группы: 
#include “stdio.h” 
#include “string.h” 
typedef           struct A { 
            char                 Fio[31]; 
            int                           
            int                           
}; 
main() 
{ 
            struct A B; 
            strcpy(B.Fio,"Ivanow G.I."); B.God = 1977; 
            B.Gruppa = 384; 
            printf("Fio = %s\\n",B.Fio);  
printf("God = %d\\n",B.God);  
printf("Gruppa = %d\\n",B.Gruppa); 
} 
В рассмотренном примере запись имеет 
следующую структуру: 
                              
            char                 Fio[31]; /* 1 поле записи */ 
            int                           
            int                           
                              
Далее можем ввести структуру B аналогичную 
A по команде 
                        struct A B; 
Далее можем в поля помещать конкретные 
данные, но мы должны уточнить, что поля 
принадлежат переменной B  нотацией  с точкой 
(B.Fio:=”Ivanow G.I.”; и т.д.). 
С помощью ключа typedef  
структурам дается имя. 
Пример можно переписать следующим образом. 
#include “stdio.h” 
#include “string.h” 
typedef           struct  { 
            char                 Fio[31]; 
            int                           
            int                           
} A; 
main() 
{ 
             A B; 
            strcpy(B.Fio,"Ivanow G.I."); 
            B.God = 1977; 
            B.Gruppa = 384; 
            printf("Fio = %s\\n",B.Fio);  
printf("God = %d\\n",B.God);  
printf("Gruppa = %d\\n",B.Gruppa); 
}
В примере мы рассмотрели одну запись, но в реальной жизни в группе не может быть одного студента, поэтому мы можем совместить массив и запись и создать массив записей. Рассмотрим пример.
#include 
“stdio.h” 
#include “string.h” 
typedef  struct A { 
            char        Fio[31]; 
            int         God; 
int         Gruppa; 
 }; 
main() 
{ 
            A WGruppa[12]; 
            strcpy(WGruppa[1].Fio,"Ivanow G.I."); 
            WGruppa[1].God = 1977; 
            WGruppa[1].Gruppa = 384; 
            strcpy(WGruppa[2].Fio,"Petrow R.G."); 
            WGruppa[2].God = 1978;  
WGruppa[2].Gruppa = 384; 
            printf("Fio1 = %s\\n",WGruppa[1].Fio); 
            printf("God1 = %d\\n",WGruppa[1].God);  
printf("Gruppa1 = %d\\n",WGruppa[1].Gruppa); 
            printf("Fio2 = %s\\n",WGruppa[2].Fio);  
printf("God2 = %d\\n",WGruppa[2].God); 
printf("Gruppa2 = %d\\n",WGruppa[2].Gruppa); 
}
Первоначально мы определили  
структуру  A,  а  затем  использовали ее при 
объявлении структуры WGruppa, как  массива 
состоящего из 12 записей структуры B. 
Теперь для адресации мы  должны  указать  
номер  элемента массива и имя поля. 
Существуют варианты, когда одна запись 
содержит другую запись, например, добавляется 
адрес, к рассмотренной выше записи студент. 
Пример. 
#include “stdio.h” 
#include “string.h” 
typedef                       struct Adress { 
            char    City[31]; 
char    Street_Nd_Kw[61]; }; 
typedef                       struct A { 
            char         Fio[31]; 
            int          God; 
            int          Gruppa; 
Adress       D_addr; }; 
main() 
{ 
            A WGruppa[12]; 
            strcpy(WGruppa[1].Fio,"Ivanow G.I."); 
            WGruppa[1].God = 1977; 
            WGruppa[1].Gruppa = 384; 
            strcpy(WGruppa[1].D_addr.City,
            strcpy(WGruppa[2].Fio,"Petrow R.G."); 
            WGruppa[2].God = 1978; 
            WGruppa[2].Gruppa = 384; 
            strcpy(WGruppa[2].D_addr.City,
            printf("Fio1 = %s\\n",WGruppa[1].Fio); 
printf("God1 = %d\\n",WGruppa[1].God); 
printf("Gruppa1 = %d\\n",WGruppa[1].Gruppa); 
printf("City= %s\\n",WGruppa[1].D_addr.City)
            printf("Street= %s\\n",WGruppa[1].D_addr.
            printf("Fio2 = %s\\n",WGruppa[2].Fio); 
            printf("God2 = %d\\n",WGruppa[2].God); 
            printf("Gruppa2 = %d\\n",WGruppa[2].Gruppa);  
printf("City= %s\\n",WGruppa[2].D_addr.City)
printf("Street= %s\\n",WGruppa[2].D_addr.
}