Алгоритмизация и программирование (Лекция 4) презентация

Содержание

Алгоритмизация и программирование I Лекция 4

Слайд 2Алгоритмизация и программирование I Лекция 4


Слайд 4Повторение
Сколько раз выполняется цикл и почему?
а)
a = 4; b = 6;
while

( a < b ) a = a + 1;
б)
a= 4; b= 6;
while ( a > b ) a ++;
в)
a= 4; b= 6;
while ( a < b ) a --;





Слайд 6ОТВЕТ
А) 2 раза

Б) 0 раз

В) зацикливание


Слайд 7Постановка задачи

Числовым рядом называется бесконечная сумма S некоторой последовательности.





Слайд 8Найти сумму первых N слагаемых
Найти сумму первых слагаемых, больших заданной величины

(найти сумму с заданной точностью)

Замечание. Вычисления организовать оптимально за минимальное число операций умножения и деления.

Слайд 10Все суммы можно разделить на три группы:

каждое слагаемое вычисляется самостоятельно;

очередное

слагаемое вычисляется через предыдущее;

часть очередного слагаемого вычисляется через часть предыдущего слагаемого

Слайд 11Порядок решения задачи
Выписать формулу общего слагаемого
Определить к какой группе относится сумма
Написать

программу

Слайд 17#include
#include
using namespace std;
void main()
{
int i,n;
double x,a,s,b;
cin >>x>>n;
s=1;
a=1;
for (i=1;i

a=-a*x*x/((2*i-1)*2*i);
s=s+a;
}
cout <}

Слайд 18#include
#include
using namespace std;
void main()
{
int i,n;
double x,a,s,b;
cin >>x>>n;
s=1; a=1;
for (i=1;i

b=2*I;
a=-a*x*x/((b-1)*b);
s=s+a;
}
cout <}


Слайд 19#include
#include
using namespace std;
void main()
{
int i,n;
double x,a,s,b;
cin >>x>>n;
s=1; a=1; b=0;
for

(i=1;i {
b+=2;
a=-a*x*x/((b-1)*b);
s=s+a;
}
cout <}


Слайд 20#include
#include
#include
using namespace std;
void main()
{
int i,n;
double x,a,s,b, eps;
cin >>x>>eps;
s=0;

a=1; i=1;
while (fabs(a)>eps)
{
s+=a;
i++
b=2*I;
a=-a*x*x/((b-1)*b);
}
cout <}


Слайд 21#include
#include
#include
using namespace std;
void main()
{
int i,n;
double x,a,s,b, eps;
cin >>x>>eps;
s=0;

a=1; i=1;
for (i=2;fabs(a)>eps;i++)
{
s+=a;
b=2*I;
a=-a*x*x/((b-1)*b);
}
cout <}


Слайд 23Цикл с параметром
for (инициализация; выражение; модификации) оператор;
Инициализация – это действие, когда

переменной присваиваем начальное значение, т.е. значение с которого наш цикл начинает работать. Можно инициализировать сразу несколько переменных. В этом случае используется операция «запятая»
.
Выражение определяет условие продолжения цикла: если его результат, приведенный к типу bool, равен true, цикл выполняется.

Модификация – это действие, которое осуществляется в процессе работы цикла. В части модификаций тоже можно написать несколько операторов через запятую.
Любая из частей может быть пропущена, но точки с запятой должны стоять на своих местах.
Оператор является телом цикла, т.е. одно действие, но с помощью цикла оно выполняется столько, сколько указано в цикле. Соответственно, если мы хотим задать группу операторов, то они помещаются в фигурные скобки.


Слайд 24Пример 1. Посчитать сумму чисел от 1 до n.
#include
#include


using namespace std;
void main()
{
int i,s=0,n;
cout <<"n=";
cin >>n;
for (i=1;i<=n;i++) s=s+i;
cout <<"s="<< s<}

Слайд 25Пример 2. Другой вариант решения
#include
#include
using namespace std;
void main()
{
int

n,i,s;
cout <<"n=";
cin >>n;
for (i=1,s=0; i<=n; i++) s += i;
cout<<"s="<}
или
i=s=0;
for (; i

Слайд 26Взаимозаменяемость трех видов циклов


Слайд 27Взаимозаменяемость трех видов циклов


Слайд 28Текстовые файлы
Текстовыми называются файлы, состоящие из любых символов.
Они организуются по

строкам, каждая из которых заканчивается символом «конец строки» (символы с кодами 13 и 10).
Конец самого файла обозначается символом «конец файла» (код 26).
При записи информации в текстовый файл все данные преобразуются к символьному типу и хранятся в символьном виде.
Текстовый файл можно создать и просмотреть с помощью любого текстового редактора


Слайд 29Работа с текстовыми файлами в с С++ (потоковый)
Поток — это абстрактное

понятие, относящееся к любому переносу данных от источника к приемнику.
В программах при работе с текстовыми файлами необходимо подключать библиотеки iostream и fstream.

#include
#include
using namespace std;


Слайд 30Текстовые файлы. Запись
Для того чтобы записывать данные в текстовый файл, необходимо:
1)

описать переменную типа ofstream:
ofstream Fout;
2) открыть файл с помощью функции open.
Fout.open(«file», mode);
Fout — переменная, описанная как ofstream,
file — полное имя файла на диске (ставитcя двойной слеш вместо одинарного: D:\\sites\\accounts.txt ),
mode — режим работы с открываемым файлом.
3) вывести информацию в файл.
Fout<4) обязательно закрыть файл.
Fout.close();


Слайд 31Режимы работы с файлом
ios::in — открыть файл в режиме чтения данных;

режим является режимом по умолчанию для потоков ifstream;
ios::out — открыть файл в режиме записи данных (при этом информация о существующем файле уничтожается); режим является режимом по умолчанию для потоков ofstream;
ios::app — открыть файл в режиме записи данных в конец файла;
ios::ate—Перейти к концу файла после открытия .
ios::trunc — очистить файл, это же происходит в режиме ios::out;


Слайд 32Пример записи в текстовый файл
#include
#include
using namespace std;

void main()
{
int a,b;
ofstream

f;
f.open("a.txt",ios::out);
cin >>a>>b;
f< f.close();
}

Слайд 33Текстовые файлы. Чтение
Для того чтобы прочитать данные из текстового файла, необходимо:
1)

описать переменную типа ifstream :
ifstream Finp;
2) открыть файл с помощью функции open.
Finp.open(«file», mode);
Finp — переменная, описанная как ifstream,
file — полное имя файла на диске,
mode — режим работы с открываемым файлом.
3) считать информацию из файла, при считывании каждой порции данных необходимо проверять, достигнут ли конец файла
Finp>>a;
4) закрыть файл.
Finp.close();


Слайд 34Пример чтения из файла
#include
#include
using namespace std;

void main()
{
int a,b;
ifstream f;
f.open("a.txt",ios::in);
f

>>a>>b;
cout< f.close();
}

Слайд 35Пример чтения из файла (конец файла)
#include
#include
using namespace std;

void main()
{
int

a;
ifstream f;
f.open("a.txt",ios::in);
while(!f.eof())
{
f >>a;
cout< }
f.close();
}


Слайд 36Задание
В текстовом файле input.txt находятся целые числа. Подсчитать количество отрицательных.


Слайд 37Решение
#include
#include
using namespace std;
void main()
{
int a, k=0;
ifstream f;
f.open("a.txt",ios::in);
while

(!f.eof())
{
f >>a;
If (a<0) k++;
}
cout< f.close();
}


Слайд 38Задание
Найти все числа Фибоначчи, попадающие в промежуток от a до b. Ответ записать в

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

Слайд 39Решение
#include
#include
using namespace std;

void main()
{
int a,b,f1,f2,f3;
ofstream f;
cin>>a>>b;


f.open("a.tst",ios::out);
f1=1;f2=1;
while (f2<=b)
{
if (f2>=a && f2<=b) f< f3=f2+f1;
f1=f2;
f2=f3;
}
f.close();
}

Слайд 40Задание
Дан текстовый файл с именем a.txt, в котором записано несколько натуральных

чисел. Посчитать среднее арифметическое чисел, хранимых в файле. Массивы использовать запрещается, а файл для чтения открывать только один раз.

Слайд 41Решение
#include
#include
using namespace std;

void main()
{
int n=0,s=0,a;
ifstream f;
f.open("a.txt",ios::in);

if (f)
{
while (!f.eof())
{
f>>a;
s+=a;
n++;
}
cout<<(double(s)/n);
}
else cout<< "Not file!";
f.close();
}

Слайд 42Пример 6. Вычислить сумму ряда S=1*2+2*4+3*8+4*16+…+n*2n
#include
using namespace std;
void main()
{
int i,j,n,s;
cin

>>n;
for (i=1,j=2,s=0;i<=n;i++,j=j*2)
s=s+i*j;
cout <}

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика