Загрузка...

Практика по программированию в среде Borland C


1. В программе вводятся по очереди символьные строки. Количество букв ‘а’ в этих строках подсчитывается в функции, и это число возвращается в основную программу. Конец ввода строк это ввод нулевой строки.

В среде Borland C написать программу, которая считает количество букв а в вводимых строках.

#include <stdio.h>

#include <conio.h>

#include <string.h>

int kolvo(char*pti,int dl)//Функция считает количество букв а и возвращает в программу

{

int i,k=0;

for(i=0;i<dl;i++)

if (*(pti+i)==’a’)

k++;//наращивание счётчика

return k;

}

void main()

{

clrscr();//очистка экрана

m:int i,k,s,dl;

char c[80];

fflush(stdin);//очистка буфера клавиатуры

do

{

printf(» Введите строку=»);

gets(c);//ввод строки

if (c[0]==0)//проверка на пустую строку

break;

dl=strlen(c);

k=kolvo(c,dl);//вызов функции

if (k!=0)

printf(» Количество букв а =%d»,k);//вывод если буквы а есть

else

printf(» Букв а в строке нет»);//оповещение о том что букв а нет

}

while(1);

printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод

scanf(«%d»,&s);

if (s==1)

goto m;

getch();

}

  1. Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы b

В среде Borland C написать программу, которая в заданной строке считает количество слов, начинающихся с буквы b

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();//очистка экрана

m:int i,k=0,s;

char c[80];

fflush(stdin);//очистка буфера клавиатуры

printf(«Введите строку=»);

gets(c);//ввод строки

if (c[0]==’b’)

k=1;//проверка первого слова

for (i=0;i<strlen(c);i++)

if (c[i]==32&&c[i+1]==’b’)//проверка слов

k++;//наращивание счётчика

printf(» Количество слов=%d»,k);//вывод

printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод

scanf(«%d»,&s);

if (s==1)

goto m;

getch();

}

  1. Определить, есть ли в строке заданное слово.

В среде Borland C написать программу, которая в введённой строке ищет заданное слово.

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();//очистка экрана

m:int i,s,k=0;

char sl[80],c[80];

fflush(stdin);//очистка буфера клавиатуры

printf(» Введите строку=»);

gets(c);//ввод строки

printf(» Введите слово=»);

gets(sl);//ввод слова

if (strstr(c,sl)!=0)//проверка на вхождение

k++;

if (k==0)//проверка есть ли слово в строке

printf(» в строке заданного слова нет «);//вывод

else

printf(» в строке заданное слово есть»);//вывод

printf(» Повторнный ввод? 1-да 0-нет =»);//запрос на повторнный ввод

scanf(«%d»,&s);

if (s==1)

goto m;

getch();

}

4.Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран количество слов, содержащих три буквы.

В среде Borland C написать программу, которая в ведённой строке считает количество слов, состоящих из 3 букв

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();//очистка экрана

m:int i,k=0,s;

char c[80];

fflush(stdin);//очистка буфера клавиатуры

printf(«Введите строку=»);

gets(c);//ввод строки

if (c[3]==32)//проверка первого слова

k=1;

if (c[strlen(c)-4]==32)//проверка последнего слова

k++;//наращивание счётчика

for (i=0;i<strlen(c);i++)

if (c[i]==32&&c[i+4]==32)//проверка слов

k++;//наращивание счётчика

printf(» Количество слов=%d»,k);//вывод

printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод

scanf(«%d»,&s);

if (s==1)

goto m;

getch();

}

5.Дана строка. Определить, сколько в ней символов :.

В среде Borland C написать программу, которая будет определять, сколько во введённой строке символов “:”

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();//очистка экрана

m:int i,k=0,s;

char c[80];

fflush(stdin);//очистка буфера клавиатуры

printf(» Введите строку=»);

gets(c);//ввод строки

for(i=0;i<strlen(c);i++)

if(c[i]==’:’)//проверка на двоеточие

k++;//наращивание счётчика

if (k==0)//если нет двоеточий

printf(» Таких символов нет»);

else

printf(» Количество символов ‘:’ = %d»,k);//вывод

printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод

scanf(«%d»,&s);

if (s==1)

goto m;

getch();

}

6.Дана строка. Посчитать количество слов, которые начинаются и оканчиваются одной и той же буквой.

В среде Borland C написать программу, которая считает количество слов в строке, которые начинаются и оканчиваются на 1 и ту же букву.

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();//очистка экрана

m:int i,j,k=0,kp,s;

char c[80];

fflush(stdin);//очистка буфера клавиатуры

printf(«Введите строку=»);

gets(c);//ввод строки

for (i=0;i<strlen(c);i++)

if (c[i]==32)//проверка от пробела до пробела

{

kp=i;

for (j=i+1;c[j]!=32;j++)

kp++;

if (c[i+1]==c[kp]&&c[kp]!=32)//если символы равны

k++;//то наращивается счётчик

i=j;

}

for(i=0;c[i]!=32;i++);

if (c[0]==c[i-1])//проверка первого слова

k++;

for(i=strlen(c);c[i]!=32;i—);

if (c[i+1]==c[strlen(c)-1])//проверка последнего слова

k++;

printf(» Количество слов=%d»,k);//вывод

printf(» Повторить ввод? 1-да 0-нет =»);//запрос на повторнный ввод

scanf(«%d»,&s);

if (s==1)

goto m;

getch();

}

7.Структура «Школьник»:

— фамилия;

— имя;

— отчество;

— класс;

— пол;

— дата рождения (число, месяц, год);

— домашний адрес (город, улица, номер дома, номер квартиры).

— создать динамический массив структур;

— задать с клавиатуры размер массива структур;

— написать функцию для формирования одномерного массива структур, значения которых вводятся с клавиатуры;

— написать функцию вывода форматированной таблицы структур на экран с шапкой;

— написать функцию дополнения уже существующего массива структур новыми структурами;

— написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента);

— Написать функцию упорядочения массива структур по заданному полю (элементу).

В среде Borland C написать программу, котораябудет создавать динамический массив структур, размер которого задаётся с клавиатуры. Выполняет с этим массивом следующие функции: ввод полей структуры, форматированный вывод полей структуры с шапкой, дополнение массива новыми структурами, поиск структур в массиве, сортировка элементов массива

#include <stdio.h>

#include <conio.h>

#include <string.h>

struct sh

{

char fio[15];//поля структуры

char kl[3];

char pol[2];

char dr[12];

char adr[80];

};

void vvod(sh*pb,int k)//функция ввода

{

int i;

for (i=0;i<k;i++)

{

puts(» Введите фио=»);//ввод полей структуры

gets((pb+i)->fio);

puts(» Введите класс=»);

gets((pb+i)->kl);

puts(» Введите пол(м-муж. ж=жен.)=»);

gets((pb+i)->pol);

puts(» ‚Введите дату рождения=»);

gets((pb+i)->dr);

puts(» Введите адрес=»);

gets((pb+i)->adr);

}

}

void vivod(sh*pb,int n)//функция вывода

{

int i;

for (i=0;i<n;i++)//вывод полей структуры

printf(» %s %s %s %s %s»,(pb+i)->fio,(pb+i)->kl,(pb+i)->pol,(pb+i)->dr,(pb+i)->adr);

}

void dop(sh*pb,int k,int n)//функция ввода доп. эл-тов

{

int i;

for (i=k;i<(k+n);i++)

{

puts(» Введите фио=»);//ввод доп. эл-тов

gets((pb+i)->fio);

puts(» Введите класс=»);

gets((pb+i)->kl);

puts(» Введите пол(м-муж. ж=жен.)=»);

gets((pb+i)->pol);

puts(» ‚Введите дату рождения=»);

gets((pb+i)->dr);

puts(» Введите адрес=»);

gets((pb+i)->adr);

}

}

void poisk(sh*pb,int k)//функция поиска

{

int i,flag=0;

char fam[20];

puts(» Введите фамилию для поиска=»);

gets(fam);//ввод искомой фамилии

for(i=0;i<k;i++)

if((strstr((pb+i)->fio,fam))!=0)//проверка на существование такой фамилии

{

printf(» ФИО Кл Пол ДР Адрес»);//форматированный вывод

printf(» %s %s %s %s %s»,(pb+i)->fio,(pb+i)->kl,(pb+i)->pol,(pb+i)->dr,(pb+i)->adr);

flag=1;

}

if(flag==0)

puts(» ’ЄЁе ­Ґв»);//оповещение

}

void sort(sh*pb,int k)//функция сортировки

{

sh tmp;

int i,j;

for(i=0;i<k;i++)

for(j=0;j<k-1;j++)

if(strcmp((pb+j)->fio,(pb+j+1)->fio)>0)//сортировка методом пузырька

{

tmp=*(pb+j);

*(pb+j)=*(pb+j+1);

*(pb+j+1)=tmp;

}

}

void main()

{

clrscr();//очистка экрана

sh shk[20];

int fl,n,nd;

printf(«Введите количество элементов=»);

scanf(«%d»,&n);//ввод ко-ва эл-тов в структуре

fflush(stdin);//очистка буфера клавиатуры

vvod(shk,n);//функция ввода

printf(» ФИО Кл Пол ДР Адрес»);

vivod(shk,n);//форматированный вывод

printf(» Нужен доп. ввод? (да =1;нет=0)=»);

scanf(«%d»,&fl);//запрос на ввод дополнительных эл-тов

if (fl==1)

{

printf(» Введите количество доп. эл-тов=»);

scanf(«%d»,&nd);//ввод количества доп. эл-тов

fflush(stdin);

dop(shk,n,nd);//вызов функции ввода доп. эл-тов

sort(shk,n+nd);//вызов функции сортировки

printf(» ФИО Кл Пол ДР Адрес»);

vivod(shk,n+nd);//форматированный вывод

poisk(shk,n+nd);//вызов функции поиска с доп. эл-тами

}

else

{

fflush(stdin);

poisk(shk,n);//вызов функции поиска без доп. эл-тов

}

getch();

}

  1. КАДРЫ: ФИО, номер цеха, разряд, специальности.

— создать динамический массив структур;

— задать с клавиатуры размер массива структур;

— написать функцию для формирования одномерного массива структур, значения которых вводятся с клавиатуры;

— написать функцию вывода форматированной таблицы структур на экран с шапкой;

— написать функцию дополнения уже существующего массива структур новыми структурами;

— написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента);

— Написать функцию упорядочения массива структур по заданному полю (элементу).

В среде Borland C написать программу, котораябудет создавать динамический массив структур, размер которого задаётся с клавиатуры. Выполняет с этим массивом следующие функции: ввод полей структуры, форматированный вывод полей структуры с шапкой, дополнение массива новыми структурами, поиск структур в массиве, сортировка элементов массива

#include <stdio.h>

#include <conio.h>

#include <string.h>

struct kad

{

char fio[15];//поля структуры

char nom[3];

char razr[2];

char spec[12];

};

void vvod(kad*pb,int k)//функция ввода

{

int i;

for (i=0;i<k;i++)

{

puts(» Введите ФИО=»);//ввод полей структуры

gets((pb+i)->fio);

puts(» Введите номер цеха=»);

gets((pb+i)->nom);

puts(» Введите разряд=»);

gets((pb+i)->razr);

puts(» Введите специальность=»);

gets((pb+i)->spec);

}

}

void vivod(kad*pb,int n)//функция вывода

{

int i;

for (i=0;i<n;i++)//вывод полей структуры

printf(» %s %s %s %s %s»,(pb+i)->fio,(pb+i)->kl,(pb+i)->pol,(pb+i)->dr,(pb+i)->adr);

}

void dop(kad*pb,int k,int n)//функция ввода доп. эл-тов

{

int i;

for (i=k;i<(k+n);i++)

{

puts(» Введите ФИО=»);//ввод полей структуры

gets((pb+i)->fio);

puts(» Введите номер цеха=»);

gets((pb+i)->nom);

puts(» Введите разряд=»);

gets((pb+i)->razr);

puts(» Введите специальность=»);

gets((pb+i)->spec);

}

}

void poisk(kad*pb,int k)//функция поиска

{

int i,flag=0;

char fam[20];

puts(» Введите фамилию для поиска=»);

gets(fam);//ввод искомой фамилии

for(i=0;i<k;i++)

if((strstr((pb+i)->fio,fam))!=0)//проверка на существование такой фамилии

{

printf(» ФИО НЦ Разр Специальность»);//форматированный вывод

printf(» %s %s %s %s %s»,(pb+i)->fio,(pb+i)->kl,(pb+i)->pol,(pb+i)->dr,(pb+i)->adr);

flag=1;

}

if(flag==0)

puts(» Таких нет «);//оповещение

}

void sort(kad*pb,int k)//функция сортировки

{

kad tmp;

int i,j;

for(i=0;i<k;i++)

for(j=0;j<k-1;j++)

if(strcmp((pb+j)->fio,(pb+j+1)->fio)>0)//сортировка методом пузырька

{

tmp=*(pb+j);

*(pb+j)=*(pb+j+1);

*(pb+j+1)=tmp;

}

}

void main()

{

clrscr();//очистка экрана

kad kadr[20];

int fl,n,nd;

printf(«Введите количество элементов=»);

scanf(«%d»,&n);//ввод ко-ва эл-тов в структуре

fflush(stdin);//очистка буфера клавиатуры

vvod(kadr,n);//функция ввода

printf(» ФИО НЦ Разр Специальность»);

vivod(kadr,n);//форматированный вывод

printf(» Нужен доп. ввод? (да =1;нет=0)=»);

scanf(«%d»,&fl);//запрос на ввод дополнительных эл-тов

if (fl==1)

{

printf(» Введите количество доп. эл-тов=»);

scanf(«%d»,&nd);//ввод количества доп. эл-тов

fflush(stdin);

dop(kadr,n,nd);//вызов функции ввода доп. эл-тов

sort(kadr,n+nd);//вызов функции сортировки

printf(» ФИО НЦ Разр Специальность»);

vivod(kadr,n+nd);//форматированный вывод

poisk(kadr,n+nd);//вызов функции поиска с доп. эл-тами

}

else

{

fflush(stdin);

poisk(kadr,n);//вызов функции поиска без доп. эл-тов

}

getch();

}

3.Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово.

В среде Borland C написать программу, которая реализовывает работу с файлами

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

void main()

{

clrscr();

FILE *in;

char sl[20];

char str[80]; //переменная для получения строки

int fl=0;

if ((in=fopen(«C:tekst.txt»,»rt»))==0) //проверка на открытие

{

printf(«Ошибка»);

exit(1); //выход

}

puts(«Введите слово=»);

gets(sl); //ввод искомого слова

while(!feof(in))

{

fgets(str,80,in); //получение строки из файла

if (strstr(str,sl)!=0) //поиск подстроки в строке

{

printf(» %s»,str); //вывод строки

fl=1;

}

}

if (fl==0)

printf(» Таких строк нет»); //вывод если нет ни 1 строки

fclose(in);

getch();

}

4Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы.

#include <stdio.h>

#include <conio.h>

void main()

{

clrscr();

FILE *in;

char c[80];

int i,fl;

if((in=fopen(«C:prak4.txt»,»rt»))==0) //проверка на открытие

{

printf(«Ошибка»);

goto m; //выход

}

while(!feof(in))

{

fgets(c,80,in); //получение строки из файла

i=0;

while(c[i]==32) //пропускание пробелов

i++;

if (c[i]==’-‘) //проверка на знак ‘-‘

{

puts(c); //вывод строки

fl=1;

}

}

if (fl==0)

printf(» Таких предложений нет»); //если нет ни 1 строки

m:getch();

}

5.Записать в файл последовательного доступа N целых чисел, полученных с помощью генератора случайных чисел. Подсчитать количество пар противоположных чисел среди компонентов этого файла.

6.Объяснить и написать фрагмент программы: а) вставки нового узла в середину однонаправленного списка? б) удаление узла из конца двунаправленного списка.

struct telnum//объявление структуры

{

char fio[80];//поля структуры

long int tel;

telnum *next,*pred;

};

telnum *cur;

cur=start;

temp=new telnum; //создание нового узла

while(cur->next->tel<temp->tel) //поиск нужного узла

cur=cur->next; //переход на следующий узел

temp->next=cur->next; //соединение связей

cur->next=temp; //соединений связей

telnum *del;

del=end; //запоминание узла который нужно удалить

end=end->pred; //переход end на предыдущий узел

end->next=0; //показатель конца списка

delete del; //удаление узла

7.Создать двунаправленный список. Вставлять новые узлы в середину списка. Распечатать список. Разработанная программа должна продемонстрировать на экране указанные действия. По окончанию программы список должен уничтожаться.

#include <stdio.h>

#include <conio.h>

#include <string.h>

struct telnum//объявление структуры

{

char fio[80];//поля структуры

long int tel;

telnum *next,*pred;

};

int inputdata(telnum*tmp) //функция ввода данных

{

puts(» Вв номер телефона=»);

scanf(«%li»,&tmp->tel); //ввод номера телефона

if(tmp->tel==0) //проверка на нулевой телефон

return 1;

else

{

fflush(stdin); //очистка буфера клавиатуры

puts(» Вв ФИО абонента=»);

gets(tmp->fio); //ввод ФИО абонента

return 0;

}

}

void printall(telnum*st) //функция вывода

{

telnum *cur=st;

for(;cur!=0;cur=cur->next) //цикл от начла до конца списка

printf(» N тел %li, ФИО абон %s «,cur->tel,cur->fio); //вывод

}

void main()

{

clrscr();

telnum*start=0;

telnum*end=0;

telnum*temp,*cur;

do //бесконечный цикл

{

temp=new telnum; //создание нового узла

if(inputdata(temp)) //если телефон = 0 то удаляется узел и выход из цикла

{

delete temp;

break;

}

else

{

if(start==0) //если нет превого узла он создаётся

{

start=temp;

start->next=0;

start->pred=0;

end=start;

}

else //прикрепление нового узла к предыдущему

{

temp->pred=end;

end->next=temp;

end=temp;

end->next=0;

}

}

}

while(1); //бесконечный цикл

printall(start); //вызов функции вывода

temp=new telnum; //создание нового узла для вставки

puts(» Вв номер телефона=»);

scanf(«%li»,&temp->tel); //заполнение полей нового узла

fflush(stdin);

puts(» Вв ФИО абонента=»);

gets(temp->fio);

cur=start->next; //поиск места для вставки

temp->next=cur->next; //соединение связей

temp->pred=cur; //соединений связей

cur->next=temp;

temp->next->pred=temp;

printall(start); //вывод дополненного массива

temp=start;

while(temp!=0) //удаление узлов

{

start=start->next;

delete temp;

temp=start;

}

getch();

}

1.Дан текстовый файл, содержащий вещественные числа. Определить сумму квадратов чисел и записать ее и все числовые данные в новый файл

В среде Borland C написать про-му, которая реализует чтение из 1 файла вещественных чисел и записать суммы их квадратов в другой файл

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

void main()

{

clrscr();//очистка экрана

FILE *in,*out;

float a,sum=0;

if ((in=fopen(«C:vas.txt»,»rt»))==0) //проверка на открытие файла vas.txt

{

printf(«Ohibka»);

exit(1);

}

if ((out=fopen(«C:rez.txt»,»wt»))==0) //проверка на открытие файла rez.txt

{

printf(«Ohibka»);

exit(1);

}

while(!feof(in))

{

fscanf(in,»%f»,&a); //считывание из файла дробных чисел в перем а

sum+=a*a; //наращивание суммы

}

fprintf(out,»%f»,sum); //занесение результата в файл rez.txt

fclose(in); //закрытие файла vas.txt

fclose(out); //закрытие файла rez.txt

getch();

}

2.Дан текстовый файл. Создать новый файл, в котором информация записана в обратном порядке.

В среде Borland C написать программу, которая считывает информацию из 1 файла и записывает данные в обратном порядке в другой файл.

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();

FILE *in,*out;

char c[80];

int i;

if((in=fopen(«C:prak.txt»,»rt»))==0) //проверка на открытие файла

{

printf(» Ошибка»); //вывод сообщения об ошибке

goto m;

}

if((out=fopen(«C:rezul.txt»,»wt»))==0) //проверка на открытие файла

{

printf(» Ошибка»); //вывод сообщения об ошибке

goto m;

}

while(!feof(in))

fgets(c,80,in); //чтение из файла в переменную с

for(i=strlen(c)-1;i>-1;i—) //цикл в обратном порядке

fputc(c[i],out); //запись в файл по символьно

fclose(in); //закрытие файла

fclose(out); //закрытие файла

m:getch();

}

4. Даны целые числа m, n. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то заменить числа нулями.

а) Данная задача считывает 2 числа с клавиатуры и в зависимости от их значения заменяет их либо нулями, либо большим из этих чисел.

б)

1

в)

#include <stdio.h>

#include <conio.h>

void main()

{

clrscr();

int m,n,k;

l:printf(«Введи m и n=»);

scanf(«%d%d»,&m,&n);

if (m!=n)

if (m>n)

n=m;

else

m=n;

else

{

m=0;

n=0;

}

printf(» %d %d»,m,n);

printf(» Повторить ввод? 1-да 0-нет =»);

scanf(«%d»,&k);

if (k==1)

goto l;

getch();

}

5. Пусть элементами равностороннего треугольника являются: 1) сторона а; 2) площадь S; 3) высота h; 4) радиус вписанной окружности r; 5) радиус описанной окружности R. Составить программу, которая по заданному номеру и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника. (switch)

а) Данная задача считывает с клавиатуры элемент и его значение и по этим данным вывод остальные элементы.

б)

в)

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

float a,s,h,r,R;

int c,k;

clrscr();

m:printf(» Введи элемент:: 1- 2-S 3-h 4-r 5-R =»);

scanf(«%d»,&c);

switch(c)

{

case 1:

printf(» Введи значение=»);

scanf(«%f»,&a);

s=(a*a*sqrt(3))/4;

r=(a*sqrt(3))/6;

R=(a*sqrt(3))/3;

h=(a*sqrt(3))/2;

printf(» Площадь=%.2f радиус вп. =%.2f радиус оп. =%.2f высота =%.2f»,s,r,R,h);

break;

case 2:

printf(» Введи значение=»);

scanf(«%f»,&s);

a=2*(sqrt(s/sqrt(3)));

r=(a*sqrt(3))/6;

R=(a*sqrt(3))/3;

h=(a*sqrt(3))/2;

printf(» сторона=%.2f радиус вп. =%.2f радиус оп. =%.2f высота =%.2f»,а,r,R,h);

break;

case 3:

printf(» Введи значение=»);

scanf(«%f»,&h);

a=(2*h)/sqrt(3);

r=(a*sqrt(3))/6;

R=(a*sqrt(3))/3;

s=(a*a*sqrt(3))/4;

printf(» сторона=%.2f радиус вп. =%.2f радиус оп. =%.2f площадь=%.2f»,a,r,R,s);

break;

case 4:

printf(» Введи значение=»);

scanf(«%f»,&r);

a=(6*r)/sqrt(3);

h=(a*sqrt(3))/2;

R=(a*sqrt(3))/3;

s=(a*a*sqrt(3))/4;

printf(» сторона=%.2f высота =%.2f радиус оп. =%.2f площадь =%.2f»,а,h,R,s);

break;

case 5:

printf(» Введи значение=»);

scanf(«%f»,&R);

a=(6*r)/sqrt(3);

h=(a*sqrt(3))/2;

r=(a*sqrt(3))/6;

s=(a*a*sqrt(3))/4;

printf(» сторона=%.2f высота =%.2f радиус вп. =%.2f площадь =%.2f»,a,h,r,s);

break;

default:

printf(» Ошибка ввода»);

}

printf(» Повторить ввод? 1-да 0-нет =»);

scanf(«%d»,&k);

if (k==1)

goto m;

getch();

}

6. Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и не делящихся ни на одно из чисел 2, 3, 5.

а) Данная задача считывает с клавиатуры число n. Запускается цикл от 1 до данного числа и выводятся числа, которые не делятся на 2,3 и 5, и их количество.

б)

в)

#include <stdio.h>

#include <conio.h>

void main()

{

clrscr();

m:int i,n,k=0,c;

printf(» введи число n=»);

scanf(«%d»,&n);

printf(» «);

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

if (i%2!=0&&i%3!=0&&i%5!=0)

{

k++;

printf(«%3d»,i);

}

printf(» Количество таких чисел=%d»,k);

printf(» Повторить ввод? 1-да 0-нет =»);

scanf(«%d»,&c);

if (c==1)

goto m;

getch();

}

7. Дано натуральное число n и действительное x. Найти сумму n членов ряда:

а) Данная задача считывает с клавиатуры число членов ряда и число х. Считает сумму членов этого ряда.

б)

в)

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

clrscr();

int n,i,c;

m:float x,s=0;

printf(«Введи n=»);

scanf(«%d»,&n);

printf(» Введи x=»);

scanf(«%f»,&x);

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

s+=pow(sin(x),i);

printf(» Сумма равна= %.2f»,s);

printf(» Повторить ввод 1-да 0-нет =»);

scanf(«%d»,&c);

if (c==1)

goto m;

getch();

}

8. Написать программу, которая вычисляет факториал введен­ного с клавиатуры числа. (Факториалом числа n называется произведение целых чисел от 1 до n. Например, факториал 1 равен 1, факториал 8 равен 40320).

а) Данная задача получает число nc клавиатуры и считает его факториал.

б)

в)

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

clrscr();

int n,i,c;

m:long int f=1;

printf(«Введи n=”);

scanf(«%d»,&n);

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

f*=i;

printf(» Факториал = %li»,f);

printf(» Повторить ввод? 1-да 0-нет =»);

scanf(«%d»,&c);

if (c==1)

goto m;

getch();

}

Загрузка...